Repository 查詢關鍵字

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

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

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

find…By, read…By, get…By, query…By, search…By, stream…By

通用的查詢方法,通常返回 Repository 型別、CollectionStreamable 子型別,或結果包裝器(例如 PageGeoResults 或任何其他特定儲存的結果包裝器)。可以作為 findBy…findMyDomainTypeBy… 或與附加關鍵字組合使用。

exists…By

Exists 投影,通常返回一個 boolean 結果。

count…By

Count 投影,返回一個數字結果。

delete…By, remove…By

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

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

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

…Distinct…

使用 distinct 查詢只返回唯一結果。請查閱特定儲存的文件,瞭解該功能是否受支援。該關鍵字可以出現在主題中 find(及其他關鍵字)和 by 之間的任何位置。

保留方法

下表列出了使用預定義功能(如 CrudRepository 中定義)的保留方法。這些方法直接在 repository 代理的底層(特定儲存)實現上呼叫。另請參見“定義查詢方法”。

表 2. 保留方法

deleteAllById(Iterable<ID> identifiers)

deleteById(ID identifier)

existsById(ID identifier)

findAllById(Iterable<ID> identifiers)

findById(ID identifier)

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

下表列出了 Spring Data Repository 查詢派生機制通常支援的謂詞關鍵字。但是,請查閱特定儲存的文件,以獲取受支援關鍵字的準確列表,因為此處列出的一些關鍵字可能在特定儲存中不受支援。

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

AND

And

OR

Or

AFTER

After, IsAfter

BEFORE

Before, IsBefore

CONTAINING

Containing, IsContaining, Contains

BETWEEN

Between, IsBetween

ENDING_WITH

EndingWith, IsEndingWith, EndsWith

EXISTS

Exists

FALSE

False, IsFalse

GREATER_THAN

GreaterThan, IsGreaterThan

GREATER_THAN_EQUALS

GreaterThanEqual, IsGreaterThanEqual

IN

In, IsIn

IS

Is, Equals, (或無關鍵字)

IS_EMPTY

IsEmpty, Empty

IS_NOT_EMPTY

IsNotEmpty, NotEmpty

IS_NOT_NULL

NotNull, IsNotNull

IS_NULL

Null, IsNull

LESS_THAN

LessThan, IsLessThan

LESS_THAN_EQUAL

LessThanEqual, IsLessThanEqual

LIKE

Like, IsLike

NEAR

Near, IsNear

NOT

Not, IsNot

NOT_IN

NotIn, IsNotIn

NOT_LIKE

NotLike, IsNotLike

REGEX

Regex, MatchesRegex, Matches

STARTING_WITH

StartingWith, IsStartingWith, StartsWith

TRUE

True, IsTrue

WITHIN

Within, IsWithin

除了過濾謂詞外,還支援以下修飾符列表

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

IgnoreCase, IgnoringCase

與謂詞關鍵字一起使用,用於不區分大小寫的比較。

AllIgnoreCase, AllIgnoringCase

忽略所有適用屬性的大小寫。在查詢方法謂詞中的某個位置使用。

OrderBy…

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