仓库查询关键词
支持的查询方法主题关键词
下表列出了 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… | 使用 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 | 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)。 |