jpa常用騷操作

1.基於方法名字查詢

方法名和參數名需要遵守一定的規則, Spring Data JP A 才能自動轉化爲JPQL:
方法名通常包含多個實體屬性用於查詢,屬性之間可以使用M叫D 和OR 連接,也支持
Between 、LessThan 、GreaterThan 、Like:
方法名可以以自ndBy 、getBy 、queryBy 開頭:
查詢結果可以排序,方法名包含OrderBy+屬性+ASC(DESC):
可以通過Top 、First 來限定查詢結果集:

一些特殊的參數可以出現在參數列表裏,比如Pageable 、sort

以下是一些例子:
//根據名字查詢,且按照名字升序
List<Person> findByLastnameOrderByFirstnameAsc(String lastname) ;
//根據名字查詢,且使用翻頁查詢
Page <User > findByLastname(String lastname , Pageable pageable) ;
//查詢滿足條件的前10 個用戶
List<User > findFirstlOByLastname(String lastname , Sort sort);
//使用And 聯合查詢
List<Person> findByLastnameAndFirstname(String lastname, String firstname);
I I 1.使用用Or 查詢
List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname ,
String firstname) ;
//使用like 查詢, name 必須包含like 中的毛或者?
public User findByNameLike(String name) ;

下表是常用的Spring Data 支持的關鍵字。
關鍵字例子轉化的JPQL 片段
And findByLastnameAndFirstname ... where x.lastname =? I and x.firstname = ?2
Or findByLastnameOrFirstname ... where x.lastname =? l or x.firstname = ?2
Between findByStartDateBetween where x.startDate between ? l and ?2
Less Than findBy AgeLessThan where x.age <?I
LessThanEqual findBy AgeLessThanEqual where x.age <= ? I
GreaterThan findBy AgeGreaterThan ... where x.age > ? 1
GreaterThanEqual findBy AgeGreaterThanEqual . . . where x.age >= ? 1
After findByStartDateAfter .. . where x.startDate >?I
Before findByStartDateBefore where x.startDate <? I
IsNull findByAgelsNull ... where x.age is null
IsNotNull ,NotNu ll findByAge(Is)NotNull ... where x.age not null
OrderBy findByAgeOrderByLastnameDesc ... where x.age =? I order by x.lastname desc
Not findByLastnameNot .. where x.lastname <>? I
In findByAgeln(Collection ages) . . where x.age in ? I
Notln findByAgeNotln(Collection age) ... where x.age not in ?I
True findByActiveTrueO . . where x.active = true

False fin dB y Ac ti veF alse() .. where x.active = fal se
IgnoreCase findByFirstnamelgnore Case where UPPER(x.fir stname) = UPPER(? !)
Like findByFirstnameLike … where x. fir stname like ? l
NotLike findByFirstnameNotLike . . . where x. fir stname not like ? I

 

 

注意: S pring D ata 的Qu e ry 構造既適合J PA , 也適合其他S prin g Data
支持的N o SO L 。在大部分Sprin g Boot 應用中, Query 構造都只能創建一些簡單的查詢。
但對於N oSQL 來說已經足夠了,不需要自己再構造NoSQ L 查詢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章