天天看點

總結一下,Spring Data JPA中自定義命名規則中,如何自定義排序規則

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
}