仓库查询关键字
支持的查询方法主题关键词
下表列出了 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. 查询谓词关键字
| 逻辑关键字 | 关键字表达式 | 
|---|---|
| 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)。 |