1、經常使用規則速查sql
1 And 而且
2 Or 或
3 Is,Equals 等於
4 Between 二者之間
5 LessThan 小於
6 LessThanEqual 小於等於
7 GreaterThan 大於
8 GreaterThanEqual 大於等於
9 After 以後(時間) >
10 Before 以前(時間) <
11 IsNull 等於Null
12 IsNotNull,NotNull 不等於Null
13 Like 模糊查詢。查詢件中須要本身加 %
14 NotLike 不在模糊範圍內。查詢件中須要本身加 %
15 StartingWith 以某開頭
16 EndingWith 以某結束
17 Containing 包含某
18 OrderBy 排序
19 Not 不等於
20 In 某範圍內
21 NotIn 某範圍外
22 True 真
23 False 假
24 IgnoreCase 忽略大小寫數據庫
2、Spring Data 解析方法名--規則說明框架
一、規則描述spa
按照Spring data 定義的規則,查詢方法以find|read|get開頭(好比 find、findBy、read、readBy、get、getBy),涉及條件查詢時,條件的屬性用條件關鍵字鏈接,要注意的是:條件屬性首字母需大寫。框架在進行方法名解析時,會先把方法名多餘的前綴截取掉,而後對剩下部分進行解析。code
若是方法的最後一個參數是 Sort 或者 Pageable 類型,也會提取相關的信息,以便按規則進行排序或者分頁查詢。對象
二、舉例說明blog
好比 findByUserAddressZip()。框架在解析該方法時,首先剔除 findBy,而後對剩下的屬性進行解析,詳細規則以下(此處假設該方法針對的域對象爲 AccountInfo 類型):排序
可能會存在一種特殊狀況,好比 AccountInfo 包含一個 user 的屬性,也有一個 userAddress 屬性,此時會存在混淆。讀者能夠明確在屬性之間加上 "_" 以顯式表達意圖,好比 "findByUser_AddressZip()" 或者 "findByUserAddress_Zip()"。(強烈建議:不管是否存在混淆,都要在不一樣類層級之間加上"_" ,增長代碼可讀性)ip
3、一些狀況資源
一、當查詢條件爲null時。
舉例說明以下:
二、排序
List<Cus> findBySexOrderByName(String sex); //名稱正序(正序時,推薦此方式,簡單)
List<Cus> findBySexOrderByNameAsc(String sex); //名稱正序(效果同上)
List<Cus> findBySexOrderByNameDesc(String sex); //名稱倒序
三、結果限制
/** * 根據父ID,獲得排序號最大的bo。 * 用於預計算新資源的排序號。 */ Resource findFirstByFather_idOrderByOrderNumDesc(Long fatherId);
User findFirstByOrderByLastnameAsc();
User findTopByOrderByAgeDesc();
Page<User> queryFirst10ByLastname(String lastname, Pageable pageable);
Slice<User> findTop3ByLastname(String lastname, Pageable pageable);
List<User> findFirst10ByLastname(String lastname, Sort sort);
List<User> findTop10ByLastname(String lastname, Pageable pageable);
四、計數
Long countByLastname(String lastname);
五、刪除
void deleteByProject_Id(Long id);
void deleteByProject_Cus_id(Long id);