跳到主要内容

仓库查询关键词

ChatGPT-4o-mini 中英对照 Repository query keywords

支持的查询方法主题关键词

下表列出了 Spring Data 仓库查询推导机制通常支持的主题关键字,用于表达谓词。请查阅特定存储的文档以获取支持的确切关键字列表,因为这里列出的一些关键字可能在某个特定存储中不受支持。

表 1. 查询主题关键词

关键词描述
find…Byread…Byget…Byquery…Bysearch…Bystream…By一般查询方法,通常返回仓库类型、CollectionStreamable 子类型,或者结果包装器,如 PageGeoResults 或任何其他特定于存储的结果包装器。可以用作 findBy…findMyDomainTypeBy… 或与附加关键词组合使用。
exists…By存在性投影,通常返回 boolean 类型的结果。
count…By计数投影,返回数字类型的结果。
delete…Byremove…By删除查询方法,返回无结果(void)或删除计数。
…First<number>……Top<number>…限制查询结果为前 <number> 个结果。此关键词可以出现在 find(和其他关键词)与 by 之间的任何位置。
…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. 查询谓词关键字

逻辑关键字关键字表达式
ANDAnd
OROr
AFTERAfter, IsAfter
BEFOREBefore, IsBefore
CONTAININGContaining, IsContaining, Contains
BETWEENBetween, IsBetween
ENDING_WITHEndingWith, IsEndingWith, EndsWith
EXISTSExists
FALSEFalse, IsFalse
GREATER_THANGreaterThan, IsGreaterThan
GREATER_THAN_EQUALSGreaterThanEqual, IsGreaterThanEqual
INIn, IsIn
ISIs, Equals, (或没有关键字)
IS_EMPTYIsEmpty, Empty
IS_NOT_EMPTYIsNotEmpty, NotEmpty
IS_NOT_NULLNotNull, IsNotNull
IS_NULLNull, IsNull
LESS_THANLessThan, IsLessThan
LESS_THAN_EQUALLessThanEqual, IsLessThanEqual
LIKELike, IsLike
NEARNear, IsNear
NOTNot, IsNot
NOT_INNotIn, IsNotIn
NOT_LIKENotLike, IsNotLike
REGEXRegex, MatchesRegex, Matches
STARTING_WITHStartingWith, IsStartingWith, StartsWith
TRUETrue, IsTrue
WITHINWithin, IsWithin

除了过滤谓词,支持以下修饰符列表:

表 4. 查询谓词修饰符关键字

关键字描述
IgnoreCase, IgnoringCase与谓词关键字一起使用,用于不区分大小写的比较。
AllIgnoreCase, AllIgnoringCase对所有适用的属性忽略大小写。用于查询方法谓词中的某处。
OrderBy…指定静态排序顺序,后跟属性路径和排序方向(例如 OrderByFirstnameAscLastnameDesc)。