仓库查询关键词

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

下表列出了 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

忽略所有合适的属性的大小写。用于查询方法谓词中的某个位置。

排序…

指定静态排序顺序,后跟属性路径和方向(例如:OrderByFirstnameAscLastnameDesc)。