跳到主要内容

仓库查询关键词

Doubao 中英对照 Repository query keywords

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

下表列出了 Spring Data 仓库查询派生机制普遍支持的、用于表达谓词的主题关键词。有关受支持关键词的确切列表,请参阅特定存储的文档,因为此处列出的某些关键词可能在特定存储中不受支持。

表 1. 查询主题关键词

关键词描述
find…By, read…By, get…By, query…By, search…By, stream…By通用查询方法,通常返回仓库类型、Collection 或 Streamable 子类型,或诸如 Page、GeoResults 之类的结果包装器,或任何其他特定存储的结果包装器。可用作 findBy…、findMyDomainTypeBy…,或与其他关键词组合使用。
exists…By存在性投影,通常返回 boolean 结果。
count…By计数投影,返回数值结果。
delete…By, remove…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)。