跳到主要内容

仓库查询关键字

QWen Flash 中英对照 Repository query keywords

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

下面的表格列出了 Spring Data repository query derivation mechanism 通常支持用于表达 predicate 的主题关键字。请参阅特定数据存储的文档以获取支持的关键字的准确列表,因为此处列出的一些关键字在特定数据存储中可能不受支持。

表 1. 查询主题关键词

关键字说明
find…By, read…By, get…By, query…By, search…By, stream…By通用查询方法,通常返回仓储类型、Collection 或 Streamable 子类型,或结果包装器(如 Page、GeoResults 或任何其他 store 特定结果包装器)。可以作为 findBy…、findMyDomainTypeBy… 使用,或与其他关键字组合使用。
exists…ByExists 投影,通常返回 boolean 结果。
count…ByCount 投影,返回数值结果。
delete…By, remove…By删除查询方法,返回无结果(void)或删除数量。
…First<number>…, …Top<number>…将查询结果限制为前 <number> 条结果。该关键字可以出现在 find(和其他关键字)与 by 之间的主体部分的任意位置。
…Distinct…使用 distinct 查询仅返回唯一结果。请查阅 store 特定文档以确认是否支持该特性。该关键字可以出现在 find(和其他关键字)与 by 之间的主体部分的任意位置。

保留方法​

下表列出了使用预定义功能的保留方法(如 CrudRepository 中定义)。这些方法直接在 repository proxy 的 backing (store-specific) implementation 上调用。另请参阅 “Defining Query Methods”。

表 2. 保留方法

deleteAllById(Iterable<ID> identifiers)
deleteById(ID identifier)
existsById(ID identifier)
findAllById(Iterable<ID> identifiers)
findById(ID identifier)

支持的查询方法谓词关键字和修饰符​

下面的表格列出了 Spring Data repository query derivation mechanism 通常支持的谓词关键字。但是,请查阅特定于 store 的文档以获取支持关键字的确切列表,因为这里列出的一些关键字可能不被特定 store 支持。

表 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

除 filter predicates 外,还支持以下修饰符列表:

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

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