Spring数据r2dbc和分页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring数据r2dbc和分页相关的知识,希望对你有一定的参考价值。

我正在使用新的spring data r2dbc模块,并且能够使用ReactiveCrudRepository提取数据。现在我需要引入分页,但是我无法做到这一点。我尝试过此

public interface TestRepository extends ReactiveCrudRepository<MyEntity, Long> 
    Flux<MyEntity> findByEntityId(Long entityId, Pageable page);

但是当我尝试执行此操作时,出现此错误

org.springframework.data.repository.query.ParameterOutOfBoundsException: Invalid parameter index! You seem to have declared too little query method parameters!
    at org.springframework.data.repository.query.Parameters.getParameter(Parameters.java:237)
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 

是否可以在该模块上使用分页?

答案

不,目前无法使用隐式分页。您应该指定整个查询才能使用它。

这里是一个例子:

@Query("SELECT * FROM my_entity WHERE entity_id = :entityId OFFSET :offset LIMIT :limit")
Flux<MyEntity> findByEntityId(Long entityId, int offset, int limit);

以上是关于Spring数据r2dbc和分页的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data JPA:使用连接表进行排序和分页

EAGER 和分页:Spring MVC + JPA Repository + Hibernate

Spring Data(数据)R2DBC

Spring Data R2DBC响应式操作MySQL

Spring数据访问和数据访问层与业务或服务层之间的交互

使用 Spring Boot 的多个 R2DBC 数据源