Springboot Cassandra分页

时间:2018-08-15 19:54:09

标签: spring-boot cassandra pagination

我正在尝试使用cassandra实现分页,但是在Stackoverflow上没有任何成功的解决方案。我遇到的主要错误是“对除第一个页面以外的页面进行页面查询需要具有有效页面状态的CassandraPageRequest”。请协助。

1 个答案:

答案 0 :(得分:0)

您必须使用CassandraPageRequest.of(pageIndex, resultsOnPage) 为了能够在页面上使用 findAll 查询,您还必须使用CassandraRepositoy扩展存储库接口,以实现查询的实现。

示例:

  1. 声明存储库接口

    @Repository
    public interface MyRepository extends CassandraRepository<MyModel, MapId>{
    
    }
    
  2. 注入仓库并使用findAll和pageable方法(必须从页面0开始)

       @Autowired
        private MyRepo repo;
    
        void someMethod(){
         int resultOnPage = ...
         //this is the first page
         Slice<MyModel> page= repository.findAll(CassandraPageRequest.of(0, resultOnPage ));
         // iterate the slice with iterator
         //.......
    
         //go ahead and take the next pages
         while (page.hasNext()) {
           page = repository.findAll(page.nextPageable());
           //process the page iterating it
         }
       }