本文主要是介绍【Spring连载】使用Spring Data的Repositories----存储库查询返回类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【Spring连载】使用Spring Data的Repositories----存储库查询返回类型
- 支持的查询返回类型
支持的查询返回类型
下表列出了Spring Data存储库通常支持的返回类型。但是,有关支持的返回类型的确切列表,请参阅特定存储的文档,因为此处列出的某些类型在特定存储中可能不受支持。
地理空间类型(如GeoResult、GeoResults和GeoPage)仅适用于支持地理空间查询的数据存储。一些存储模块可以定义自己的结果包装器类型。
表1:查询返回类型
返回类型 | 描述 |
---|---|
void | 表示没有返回值。 |
primitives | Java primitives. |
Wrapper types | Java wrapper types. |
T | 一个独特的实体。要求查询方法最多返回一个结果。如果未找到结果,则返回null。多个结果触发IncorrectResultSizeDataAccessException。 |
Iterator< T> | 一个迭代器 |
Collection< T> | 一个集合 |
List< T> | 一个List |
Optional< T> | Java 8或Guava Optional。要求查询方法最多返回一个结果。如果找不到结果,则返回Optional.empty() 或Optional.absent()。多个结果触发IncorrectResultSizeDataAccessException。 |
Option< T> | Scala或Vavr Option类型。在语义上与前面描述的Java8的Optional行为相同。 |
Stream< T> | Java 8 Stream. |
Streamable< T> | Iterable的一个方便扩展,它直接向流公开方法,map、filter results、concatenate 它们等。 |
实现Streamable并采用Streamable构造函数或工厂方法参数的类型 | 以Streamable为参数公开构造函数或….of(…)/….valueOf(…)工厂方法的类型。有关详细信息,请参阅21.4.2 返回自定义流包装类型。 |
Vavr Seq, List, Map, Set | Vavr集合类型。有关详细信息,请参阅21.4.3 Vavr集合的支持。 |
Future< T> | A Future。需要用@Async注解方法,并要求开启Spring的异步方法执行能力。 |
CompletableFuture< T> | 一个Java 8 CompletableFuture。要求用@Async注解方法,并要求启用Spring的异步方法执行功能。 |
Slice< T> | 一个不大的数据块,显示是否有更多可用的数据。需要一个Pageable的方法参数。 |
Page< T> | 包含附加信息的切片,例如结果总数。需要Pageable方法参数。 |
Window< T> | 从滚动查询中获得的结果Window。提供ScrollPosition以发出下一个滚动查询。需要ScrollPosition方法参数。 |
GeoResult< T> | 带有附加信息的结果条目,例如到参考位置的距离。 |
GeoResults< T> | 包含附加信息的GeoResult< T>列表,例如到参考位置的平均距离。 |
GeoPage< T> | GeoResult< T>的Page,例如到参考位置的平均距离。 |
Mono< T> | Project Reactor Mono使用reactive存储库发射零个或一个元素。要求查询方法最多返回一个结果。如果没有找到结果,则返回Mono.empty()。多个结果触发IncorrectResultSizeDataAccessException。 |
Flux< T> | 使用reactive存储库发出零、一个或多个元素的Project Reactor Flux。返回Flux的查询也可以发出无限数量的元素。 |
Single< T> | RxJava Single使用reactive存储库发出单个元素。期望查询方法最多返回一个结果。如果没有找到结果,则返回Mono.empty()。不止一个结果触发IncorrectResultSizeDataAccessException。 |
Maybe< T> | RxJava可能使用reactive存储库发出零或一个元素。期望查询方法最多返回一个结果。如果没有找到结果,则返回Mono.empty()。不止一个结果触发IncorrectResultSizeDataAccessException。 |
Flowable< T> | RxJava Flowable使用reactive存储库发出零个、一个或多个元素。返回Flowable的查询也可以发出无限数量的元素。 |
这篇关于【Spring连载】使用Spring Data的Repositories----存储库查询返回类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!