此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data JPA 3.5.0

存储库查询关键字

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

下表列出了 Spring Data 存储库查询派生机制通常支持的用于表示谓词的 subject 关键字。 有关支持的关键词的确切列表,请参阅特定于商店的文档,因为此处列出的某些关键词在特定商店中可能不受支持。

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

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

常规查询方法通常返回存储库类型CollectionStreamable子类型或结果包装器(如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…

使用非重复查询仅返回唯一结果。请查阅特定于商店的文档,了解该功能是否受支持。此关键字可以出现在主题之间的任何位置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

除了 filter 谓词之外,还支持以下修饰符列表:

表 4.查询谓词修饰符关键字
关键词 描述

IgnoreCase,IgnoringCase

与 predicate 关键字一起使用,用于不区分大小写的比较。

AllIgnoreCase,AllIgnoringCase

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

OrderBy…

指定静态排序顺序,后跟属性 path 和 direction (例如OrderByFirstnameAscLastnameDesc).