Repository 查詢關鍵詞

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

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

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

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

通用查詢方法,通常返回 Repository 型別、`Collection` 或 `Streamable` 子型別,或諸如 `Page`、`GeoResults` 等結果包裝器,或任何其他特定於儲存的結果包裝器。可用於 `findBy…`、`findMyDomainTypeBy…` 或與其他關鍵詞結合使用。

exists…By

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

count…By

Count 投影,返回數值結果。

delete…By, remove…By

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

…First<number>…, …Top<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`)。