Spring Data JPA中自定義命名規則中,如何實現,自定義排序輸出
代碼如下
// findByName,會有重名的,返回list,默認是按照ID,返回,現自定義排序規則,按照入學時間升序排序
@GetMapping("/findByName2")
public ResultBean getbyName2(String name) {
return ResultBean.ok(stu2Service.findByAndSort(name));
}
public interface Stu2Service {
List<Stu2> findByAndSort(String name);
}
public interface Stu2Repository extends JpaRepository<Stu2, Long>, JpaSpecificationExecutor<Stu2> {
@Query("select u from Stu2 u where u.name=?1")
List<Stu2> findByAndSort(String name, Sort sort);
}
@Override
public List<Stu2> findByAndSort(String name) {
return stu2Repository.findByAndSort(name, Sort.by(Direction.ASC, "admissionTime"));
}
啓動項目,訪問 http://ip:port/xxx//findByName2?name=xx
JPA生成的SQL語句爲
SELECT
stu2x0_.id_ AS id_1_1_,
stu2x0_.admission_time AS admissio2_1_,
stu2x0_.age_ AS age_3_1_,
stu2x0_.created_by AS created_4_1_,
stu2x0_.hobbies_ AS hobbies_5_1_,
stu2x0_.name_ AS name_6_1_,
stu2x0_.phone_ AS phone_7_1_,
stu2x0_.sid_ AS sid_8_1_,
stu2x0_.summary_ AS summary_9_1_
FROM
ls_stu2 stu2x0_
WHERE
stu2x0_.name_ =?
ORDER BY
stu2x0_.admission_time ASC
這裏是引用
響應數據爲JSON格式
{
"code":"0",
"msg":"成功",
"result":[
{
"id":15,
"sid":null,
"name":"西門峯",
"age":26,
"phone":null,
"hobbies":"籃球",
"summary":"即使生活很喪,我依舊不想去做一個極端且悲觀的人,因爲我相信,既然有那麼多人憧憬未來,對生活滿懷期待,那這世界一定沒有我想的那麼糟糕。",
"createdBy":"sl",
"admissionTime":"2008-06-18 09:27:25"
},
{
"id":16,
"sid":null,
"name":"西門峯",
"age":13,
"phone":null,
"hobbies":"橄欖球",
"summary":"To be or not to be……",
"createdBy":"sl",
"admissionTime":"2018-02-01 16:52:00"
},
{
"id":14,
"sid":null,
"name":"西門峯",
"age":21,
"phone":null,
"hobbies":"足球",
"summary":"即使生活很喪,我依舊不想去做一個極端且悲觀的人,因爲我相信,既然有那麼多人憧憬未來,對生活滿懷期待,那這世界一定沒有我想的那麼糟糕。",
"createdBy":"ls",
"admissionTime":"2018-05-27 17:01:25"
}
],
"success":true
}