Repository 查询关键字

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

下表列出了 Spring Data Repository 查询派生机制通常支持的、用于表达谓词的主题关键字。请查阅特定存储的文档,以获取受支持关键字的准确列表,因为此处列出的一些关键字可能在特定存储中不受支持。

表 1. 查询主题关键字
关键字 描述

find…By, read…By, get…By, query…By, search…By, stream…By

通用的查询方法,通常返回 Repository 类型、CollectionStreamable 子类型,或结果包装器(例如 PageGeoResults 或任何其他特定存储的结果包装器)。可以作为 findBy…findMyDomainTypeBy… 或与附加关键字组合使用。

exists…By

Exists 投影,通常返回一个 boolean 结果。

count…By

Count 投影,返回一个数字结果。

delete…By, remove…By

删除查询方法,返回无结果 (void) 或删除计数。

…First<number>…, …Top<number>…

将查询结果限制为前 <number> 个结果。该关键字可以出现在主题中 find(及其他关键字)和 by 之间的任何位置。

…Distinct…

使用 distinct 查询只返回唯一结果。请查阅特定存储的文档,了解该功能是否受支持。该关键字可以出现在主题中 find(及其他关键字)和 by 之间的任何位置。

保留方法

下表列出了使用预定义功能(如 CrudRepository 中定义)的保留方法。这些方法直接在 repository 代理的底层(特定存储)实现上调用。另请参见“定义查询方法”。

表 2. 保留方法

deleteAllById(Iterable<ID> identifiers)

deleteById(ID identifier)

existsById(ID identifier)

findAllById(Iterable<ID> identifiers)

findById(ID identifier)

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

下表列出了 Spring Data Repository 查询派生机制通常支持的谓词关键字。但是,请查阅特定存储的文档,以获取受支持关键字的准确列表,因为此处列出的一些关键字可能在特定存储中不受支持。

表 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)。