Spring 数据 Mongodb 反应性存储库中 findAll 方法的分页

Pagination for a findAll method in Spring Data Mongodb Reactive repositories

已经有 ReactiveCrudRepository。接受的解决方案适用于遵循 findBy 格式的查询。项目文档还引用了该用法:

https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.reactive.repositories.usage

Example 158. Basic repository interface to persist Person entities

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 数据 MongoDB 是否以某种方式支持这一点?

首先findAll(Pageable pageable)PagingAndSortingRepository的一个方法。 Spring数据支持使用findBy方法查询,与findAll(Pageable pageable).

无关

Currently Reactive Spring Data MongoDB 不支持任何类似 findAll(pageable: Pageable) 的方法,但有一种方法可以做到。

interface CustomerRepository : ReactiveSortingRepository<Customer, String> {
    fun findByIdNotNull(pageable: Pageable): Flux<Customer>
}   

您可以从

中阅读更多详细信息