Repository 查詢關鍵字

支援的查詢方法主詞關鍵字

下表列出 Spring Data Repository 查詢衍生機制通常支援的主詞關鍵字,用於表達述詞。請查閱特定儲存庫的文件以取得支援關鍵字的確切列表,因為此處列出的一些關鍵字可能在特定儲存庫中不受支援。

表 1. 查詢主詞關鍵字
關鍵字 描述

find…Byread…Byget…Byquery…Bysearch…Bystream…By

通用查詢方法,通常傳回 Repository 類型、CollectionStreamable 子類型,或結果包裝器,例如 PageGeoResults 或任何其他特定於儲存庫的結果包裝器。可用作 findBy…findMyDomainTypeBy… 或與其他關鍵字組合使用。

exists…By

存在性投影,通常傳回 boolean 結果。

count…By

計數投影,傳回數字結果。

delete…Byremove…By

刪除查詢方法,不傳回結果 (void) 或傳回刪除計數。

…First<number>……Top<number>…

將查詢結果限制為前 <number> 個結果。此關鍵字可以出現在主詞中 find (和其他關鍵字) 和 by 之間的任何位置。

…Distinct…

使用 Distinct 查詢僅傳回唯一結果。請查閱特定儲存庫的文件,以了解是否支援此功能。此關鍵字可以出現在主詞中 find (和其他關鍵字) 和 by 之間的任何位置。

保留方法

下表列出使用預定義功能(如 CrudRepository 中定義)的保留方法。這些方法會直接在 Repository Proxy 的後端(特定於儲存庫)實作上調用。另請參閱「定義查詢方法」。

表 2. 保留方法

deleteAllById(Iterable<ID> identifiers)

deleteById(ID identifier)

existsById(ID identifier)

findAllById(Iterable<ID> identifiers)

findById(ID identifier)

支援的查詢方法述詞關鍵字和修飾詞

下表列出 Spring Data Repository 查詢衍生機制通常支援的述詞關鍵字。然而,請查閱特定儲存庫的文件以取得支援關鍵字的確切列表,因為此處列出的一些關鍵字可能在特定儲存庫中不受支援。

表 3. 查詢述詞關鍵字
邏輯關鍵字 關鍵字表達式

And

Or

之後

After, IsAfter

之前

Before, IsBefore

包含

Containing, IsContaining, Contains

介於

Between, IsBetween

結尾為

EndingWith, IsEndingWith, EndsWith

存在

Exists

False, IsFalse

大於

GreaterThan, IsGreaterThan

大於等於

GreaterThanEqual, IsGreaterThanEqual

在…之中

In, IsIn

Is, Equals, (或無關鍵字)

為空

IsEmpty, Empty

不為空

IsNotEmpty, NotEmpty

不為 Null

NotNull, IsNotNull

為 Null

Null, IsNull

小於

LessThan, IsLessThan

小於等於

LessThanEqual, IsLessThanEqual

相似

Like, IsLike

接近

Near, IsNear

Not, IsNot

不在…之中

NotIn, IsNotIn

不相似

NotLike, IsNotLike

正規表示式

Regex, MatchesRegex, Matches

開頭為

StartingWith, IsStartingWith, StartsWith

True, IsTrue

在…之內

Within, IsWithin

除了篩選述詞之外,還支援以下修飾詞列表

表 4. 查詢述詞修飾詞關鍵字
關鍵字 描述

IgnoreCase, IgnoringCase

與述詞關鍵字搭配使用,用於不區分大小寫的比較。

AllIgnoreCase, AllIgnoringCase

忽略所有適用屬性的大小寫。在查詢方法述詞中的某處使用。

OrderBy…

指定靜態排序順序,後接屬性路徑和方向(例如 OrderByFirstnameAscLastnameDesc)。