spring - Spring Data Mongodb Reactive 存储库中 findAll 方法的分页
问题描述
已经有一个关于分页的问题ReactiveCrudRepository
。接受的解决方案适用于遵循某种findBy
格式的查询。项目文档还引用了该用法:
示例 158.持久化 Person 实体的基本存储库接口
public interface ReactivePersonRepository extends ReactiveSortingRepository<Person, String> { Flux<Person> findByFirstname(String firstname); Flux<Person> findByFirstname(Publisher<String> firstname); Flux<Person> findByFirstnameOrderByLastname(String firstname, Pageable pageable); Mono<Person> findByFirstnameAndLastname(String firstname, String lastname); Mono<Person> findFirstByLastname(String lastname); }
问题是这不适用于 findAll:
interface CustomerRepository : ReactiveCrudRepository<Customer, String> {
fun findAll(pageable: Pageable): Flux<Customer>
例外:
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property findAll found for type Customer!
Spring Data MongoDB 是否以某种方式支持这一点?
解决方案
首先findAll(Pageable pageable)
是一种方法PagingAndSortingRepository
。Spring 数据支持使用findBy
与findAll(Pageable pageable)
.
目前 Reactive Spring Data MongoDB 不支持任何类似findAll(pageable: Pageable)
的方法,但有一种方法可以做到。
interface CustomerRepository : ReactiveSortingRepository<Customer, String> {
fun findByIdNotNull(pageable: Pageable): Flux<Customer>
}
您可以从此处阅读更多详细信息
推荐阅读
- python - Streamlit 中的登录页面问题
- java - 从键盘读取并忽略打印的文本
- javascript - 如何使用 Javascript 监听值变化的特定键?
- javascript - 通过计算字符长度将 JS 数组拆分和连接成块
- javascript - 广告未呈现
- json - Jq 在使用 AWS Secrets Manager 解析时添加额外的双引号
- c# - ServiceStack.Redis:所有 MQ 请求处理程序的一个线程池?
- python - 列表理解以删除不需要的对象。验证它按预期工作
- php - 从肥皂响应中提取价值
- ios - 在 contentSize 超过 visibleSize 之前,垂直 UIScrollView 不可交互