仓库查询关键词
支持的查询方法主题关键词
下表列出了 Spring Data repository 查询派生机制通常支持用于表达谓词的主语关键词。请查阅特定 store 的文档,以获取支持的关键词的准确列表,因为此处列出的某些关键词可能不受特定 store 支持。
表 1. 查询主题关键词
| Keyword | Description |
|---|---|
find…By, read…By, get…By, query…By, search…By, stream…By | 通用查询方法,通常返回 repository 类型、Collection 或 Streamable 子类型,或结果包装器(如 Page、GeoResults 或其他 store 特定结果包装器)。可用作 findBy…、findMyDomainTypeBy…,或与其他关键字组合使用。 |
exists…By | Exists 投影,通常返回 boolean 结果。 |
count…By | Count 投影,返回数值结果。 |
delete…By, remove…By | 删除查询方法,返回无结果(void)或删除计数。 |
…First<number>…, …Top<number>… | 将查询结果限制为前 <number> 个结果。该关键字可以出现在 find(以及其他关键字)和 by 之间主题部分的任意位置。 |
…Distinct… | 使用 distinct 查询仅返回唯一结果。请查阅 store 特定文档以确认是否支持该功能。该关键字可以出现在 find(以及其他关键字)和 by 之间主题部分的任意位置。 |
保留方法
下表列出了使用预定义功能的保留方法(如 CrudRepository 中定义)。这些方法会直接在仓储代理的底层(特定于存储)实现上调用。另请参阅 “定义查询方法”.
表 2. 保留方法
deleteAllById(Iterable<ID> identifiers) |
|---|
deleteById(ID identifier) |
existsById(ID identifier) |
findAllById(Iterable<ID> identifiers) |
findById(ID identifier) |
支持的查询方法谓词关键字和修饰符
下表列出了 Spring Data repository 查询派生机制通常支持的谓词关键字。不过,请参阅特定于存储的文档,以获取支持的关键字的准确列表,因为此处列出的某些关键字在特定存储中可能不受支持。
表 3. Query predicate keywords
| 逻辑关键字 | 关键字表达式 |
|---|---|
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 |
除 filter predicates 外,还支持以下修饰符列表:
表 4. 查询谓词修饰关键字
| 关键字 | 说明 |
|---|---|
IgnoreCase, IgnoringCase | 与谓词关键字一起使用,用于不区分大小写的比较。 |
AllIgnoreCase, AllIgnoringCase | 忽略所有适用属性的大小写。在查询方法谓词的某个位置使用。 |
OrderBy… | 指定一个静态排序顺序,后接属性路径和方向(例如 OrderByFirstnameAscLastnameDesc)。 |