儲存庫查詢關鍵字

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

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

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

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

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

exists…By

Exists 投影,通常傳回 boolean 結果。

count…By

Count 投影,傳回數值結果。

delete…Byremove…By

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

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

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

…Distinct…

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

保留方法

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

表 2. 保留方法

deleteAllById(Iterable<ID> identifiers)

deleteById(ID identifier)

existsById(ID identifier)

findAllById(Iterable<ID> identifiers)

findById(ID identifier)

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

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

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

AND

And

OR

Or

AFTER

AfterIsAfter

BEFORE

BeforeIsBefore

CONTAINING

ContainingIsContainingContains

BETWEEN

BetweenIsBetween

ENDING_WITH

EndingWithIsEndingWithEndsWith

EXISTS

Exists

FALSE

FalseIsFalse

GREATER_THAN

GreaterThanIsGreaterThan

GREATER_THAN_EQUALS

GreaterThanEqualIsGreaterThanEqual

IN

InIsIn

IS

IsEquals、(或無關鍵字)

IS_EMPTY

IsEmptyEmpty

IS_NOT_EMPTY

IsNotEmptyNotEmpty

IS_NOT_NULL

NotNullIsNotNull

IS_NULL

NullIsNull

LESS_THAN

LessThanIsLessThan

LESS_THAN_EQUAL

LessThanEqualIsLessThanEqual

LIKE

LikeIsLike

NEAR

NearIsNear

NOT

NotIsNot

NOT_IN

NotInIsNotIn

NOT_LIKE

NotLikeIsNotLike

REGEX

RegexMatchesRegexMatches

STARTING_WITH

StartingWithIsStartingWithStartsWith

TRUE

TrueIsTrue

WITHIN

WithinIsWithin

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

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

IgnoreCaseIgnoringCase

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

AllIgnoreCaseAllIgnoringCase

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

OrderBy…

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