附录

附录 A:命名空间参考

元素<repositories />

该元素触发 Spring Data 存储库基础结构的设置。最重要的属性是 ,它定义要扫描 Spring Data 存储库接口的包。请参阅 “[repositories.create-instances.spring]”。下表描述了该元素的属性:<repositories />base-package<repositories />spring-doc.cn

表 6.属性
名字 描述

base-packagespring-doc.cn

定义要扫描的包,以查找在自动检测模式下扩展的存储库接口(实际接口由特定的 Spring Data 模块确定)。也会扫描已配置包下的所有包。允许使用通配符。*Repositoryspring-doc.cn

repository-impl-postfixspring-doc.cn

定义 postfix 以自动检测自定义存储库实现。名称以配置的后缀结尾的类被视为候选类。默认为 。Implspring-doc.cn

query-lookup-strategyspring-doc.cn

确定用于创建 finder 查询的策略。有关详细信息,请参阅“[repositories.query-methods.query-lookup-strategies]”。默认为 。create-if-not-foundspring-doc.cn

named-queries-locationspring-doc.cn

定义搜索包含外部定义查询的 Properties 文件的位置。spring-doc.cn

consider-nested-repositoriesspring-doc.cn

是否应考虑嵌套的存储库接口定义。默认为 。falsespring-doc.cn

附录 B:Populators 命名空间参考

<populator /> 元素

该元素允许通过 Spring Data 存储库基础结构填充数据存储。<populator />[1]spring-doc.cn

表 7.属性
名字 描述

locationsspring-doc.cn

在何处查找要从存储库中读取对象的文件应填充。spring-doc.cn

附录 C:存储库查询关键字

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

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

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

find…By, , , , ,read…Byget…Byquery…Bysearch…Bystream…Byspring-doc.cn

常规查询方法,通常返回存储库类型、子类型或结果包装器(如 ,或任何其他特定于存储区的结果包装器)。可用作 ,或与其他关键字结合使用。CollectionStreamablePageGeoResultsfindBy…findMyDomainTypeBy…spring-doc.cn

exists…Byspring-doc.cn

Exists 投影,通常返回结果。booleanspring-doc.cn

count…Byspring-doc.cn

Count 投影返回数值结果。spring-doc.cn

delete…By,remove…Byspring-doc.cn

Delete 查询方法返回 no result () 或 delete count。voidspring-doc.cn

…First<number>…,…Top<number>…spring-doc.cn

将查询结果限制为第一个结果。此关键字可以出现在主题 (和其他关键字) 和 之间的任何位置。<number>findbyspring-doc.cn

…Distinct…spring-doc.cn

使用非重复查询仅返回唯一结果。请查阅特定于商店的文档,了解该功能是否受支持。此关键字可以出现在主题 (和其他关键字) 和 之间的任何位置。findbyspring-doc.cn

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

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

表 9.查询谓词关键字
逻辑关键字 关键字表达式

ANDspring-doc.cn

Andspring-doc.cn

ORspring-doc.cn

Orspring-doc.cn

AFTERspring-doc.cn

After,IsAfterspring-doc.cn

BEFOREspring-doc.cn

Before,IsBeforespring-doc.cn

CONTAININGspring-doc.cn

Containing, ,IsContainingContainsspring-doc.cn

BETWEENspring-doc.cn

Between,IsBetweenspring-doc.cn

ENDING_WITHspring-doc.cn

EndingWith, ,IsEndingWithEndsWithspring-doc.cn

EXISTSspring-doc.cn

Existsspring-doc.cn

FALSEspring-doc.cn

False,IsFalsespring-doc.cn

GREATER_THANspring-doc.cn

GreaterThan,IsGreaterThanspring-doc.cn

GREATER_THAN_EQUALSspring-doc.cn

GreaterThanEqual,IsGreaterThanEqualspring-doc.cn

INspring-doc.cn

In,IsInspring-doc.cn

ISspring-doc.cn

Is, , (或无关键字)Equalsspring-doc.cn

IS_EMPTYspring-doc.cn

IsEmpty,Emptyspring-doc.cn

IS_NOT_EMPTYspring-doc.cn

IsNotEmpty,NotEmptyspring-doc.cn

IS_NOT_NULLspring-doc.cn

NotNull,IsNotNullspring-doc.cn

IS_NULLspring-doc.cn

Null,IsNullspring-doc.cn

LESS_THANspring-doc.cn

LessThan,IsLessThanspring-doc.cn

LESS_THAN_EQUALspring-doc.cn

LessThanEqual,IsLessThanEqualspring-doc.cn

LIKEspring-doc.cn

Like,IsLikespring-doc.cn

NEARspring-doc.cn

Near,IsNearspring-doc.cn

NOTspring-doc.cn

Not,IsNotspring-doc.cn

NOT_INspring-doc.cn

NotIn,IsNotInspring-doc.cn

NOT_LIKEspring-doc.cn

NotLike,IsNotLikespring-doc.cn

REGEXspring-doc.cn

Regex, ,MatchesRegexMatchesspring-doc.cn

STARTING_WITHspring-doc.cn

StartingWith, ,IsStartingWithStartsWithspring-doc.cn

TRUEspring-doc.cn

True,IsTruespring-doc.cn

WITHINspring-doc.cn

Within,IsWithinspring-doc.cn

除了 filter 谓词之外,还支持以下修饰符列表:spring-doc.cn

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

IgnoreCase,IgnoringCasespring-doc.cn

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

AllIgnoreCase,AllIgnoringCasespring-doc.cn

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

OrderBy…spring-doc.cn

指定静态排序顺序,后跟属性 path 和 direction (例如 )。OrderByFirstnameAscLastnameDescspring-doc.cn

附录 D:存储库查询返回类型

支持的查询返回类型

下表列出了 Spring Data 存储库通常支持的返回类型。 但是,有关支持的返回类型的确切列表,请参阅特定于 store 的文档,因为此处列出的某些类型在特定 store 中可能不受支持。spring-doc.cn

地理空间类型(如 、 和 )仅适用于支持地理空间查询的数据存储。 一些 store 模块可能会定义自己的结果包装器类型。GeoResultGeoResultsGeoPage
表 11.查询返回类型
返回类型 描述

voidspring-doc.cn

表示无返回值。spring-doc.cn

spring-doc.cn

Java 原语。spring-doc.cn

包装器类型spring-doc.cn

Java 包装器类型。spring-doc.cn

Tspring-doc.cn

唯一实体。期望 query 方法最多返回一个结果。如果未找到结果,则返回。多个结果会触发 .nullIncorrectResultSizeDataAccessExceptionspring-doc.cn

Iterator<T>spring-doc.cn

一。Iteratorspring-doc.cn

Collection<T>spring-doc.cn

一个。Collectionspring-doc.cn

List<T>spring-doc.cn

一个。Listspring-doc.cn

Optional<T>spring-doc.cn

Java 8 或 Guava .期望 query 方法最多返回一个结果。如果未找到或返回任何结果。多个结果会触发 .OptionalOptional.empty()Optional.absent()IncorrectResultSizeDataAccessExceptionspring-doc.cn

Option<T>spring-doc.cn

Scala 或 Vavr 类型。语义上的行为与前面描述的 Java 8 的行为相同。OptionOptionalspring-doc.cn

Stream<T>spring-doc.cn

一个 Java 8 .Streamspring-doc.cn

Streamable<T>spring-doc.cn

该 directy 的便捷扩展公开了流式传输、映射和过滤结果、连接结果等的方法。Iterablespring-doc.cn

实现并采用构造函数或工厂方法参数的类型StreamableStreamablespring-doc.cn

公开构造函数或/或采用 as 参数的工厂方法的类型。有关详细信息,请参阅 [repositories.collections-and-iterables.streamable-wrapper]。….of(…)….valueOf(…)Streamablespring-doc.cn

Vavr , , ,SeqListMapSetspring-doc.cn

Vavr 集合类型。有关详细信息,请参阅 [repositories.collections-and-iterables.vavr]。spring-doc.cn

Future<T>spring-doc.cn

一个。期望使用方法进行注释,并需要启用 Spring 的异步方法执行功能。Future@Asyncspring-doc.cn

CompletableFuture<T>spring-doc.cn

一个 Java 8 .期望使用方法进行注释,并需要启用 Spring 的异步方法执行功能。CompletableFuture@Asyncspring-doc.cn

ListenableFuturespring-doc.cn

一个。期望使用方法进行注释,并需要启用 Spring 的异步方法执行功能。org.springframework.util.concurrent.ListenableFuture@Asyncspring-doc.cn

Slice<T>spring-doc.cn

大小的数据块,指示是否有更多可用数据。需要 method 参数。Pageablespring-doc.cn

Page<T>spring-doc.cn

A 包含其他信息,例如结果总数。需要 method 参数。SlicePageablespring-doc.cn

GeoResult<T>spring-doc.cn

包含其他信息 (例如到参考位置的距离) 的结果条目。spring-doc.cn

GeoResults<T>spring-doc.cn

包含其他信息的列表,例如到参考位置的平均距离。GeoResult<T>spring-doc.cn

GeoPage<T>spring-doc.cn

A 替换为 ,例如到参考位置的平均距离。PageGeoResult<T>spring-doc.cn

Mono<T>spring-doc.cn

一个使用反应式存储库发出零个或一个元素的项目 Reactor。期望 query 方法最多返回一个结果。如果未找到结果,则返回。多个结果会触发 .MonoMono.empty()IncorrectResultSizeDataAccessExceptionspring-doc.cn

Flux<T>spring-doc.cn

一个使用反应式存储库发出零个、一个或多个元素的项目 Reactor。返回的查询也可以发出无限数量的元素。FluxFluxspring-doc.cn

Single<T>spring-doc.cn

一个 RxJava,使用反应式存储库发出单个元素。期望 query 方法最多返回一个结果。如果未找到结果,则返回。多个结果会触发 .SingleMono.empty()IncorrectResultSizeDataAccessExceptionspring-doc.cn

Maybe<T>spring-doc.cn

一个 RxJava,使用反应式存储库发出零个或一个元素。期望 query 方法最多返回一个结果。如果未找到结果,则返回。多个结果会触发 .MaybeMono.empty()IncorrectResultSizeDataAccessExceptionspring-doc.cn

Flowable<T>spring-doc.cn

一个使用反应式存储库发出零个、一个或多个元素的 RxJava。返回的查询也可以发出无限数量的元素。FlowableFlowablespring-doc.cn