愉快的使用JPA進(jìn)行數(shù)據(jù)查詢(六)接口規(guī)范方法名查詢

前面說過,JpaRepository已經(jīng)給我們提供了很強(qiáng)大的查詢功能,基本能滿足大部分場景,但是某些需求(如like查詢),仍然會遇到困難。
spring-data-jpa給我們提供了接口規(guī)范方法名查詢方式,只要在我們繼承了Repository接口的接口中使用JPA規(guī)范的方法命名,spring-data-jpa就可以反解出對應(yīng)的sql語句。
規(guī)范如下:

Keyword Sample
IsNotNull findByAgeNotNull
Like findByNameLike
NotLike findByNameNotLike
StartingWith findByNameStartingWith
EndingWith findByNameEndingWith
Containing findByNameContaining
OrderBy findByAgeOrderByName
Not findByNameNot
In findByAgeIn
NotIn findByAgeNotIn
True findByActiveTrue
Flase findByActiveFalse
And findByNameAndAge
Or findByNameOrAge
Between findBtAgeBetween
LessThan findByAgeLessThan
GreaterThan findByAgeGreaterThan
IsNull findByAgeIsNull

基本上所有的規(guī)范都非常好理解

首先看一個場景,我們需要查詢學(xué)生姓名中有jules的學(xué)生

編寫接口方法

按照上述規(guī)范編寫接口方法:

List<Student> findByNameLike(String name);

然后編寫我們的測試方法

  @RequestMapping("findStudentByNameLike/{name}")
  public List<Student> addStudent(@PathVariable("name") String name){
    String selectName = "%" + name + "%";
    List<Student> students = studentDao.findByNameLike(selectName);
    return students;
  }

編譯一下我們的項目,在瀏覽器輸入http://127.0.0.1:8080/findStudentByNameLike/jules就能查詢到所有我們需要的結(jié)果。

其他的方法可以自行測試,都很簡單。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容