我正在尝试使用cassandra实现分页,但是在Stackoverflow上没有任何成功的解决方案。我遇到的主要错误是“对除第一个页面以外的页面进行页面查询需要具有有效页面状态的CassandraPageRequest”。请协助。
答案 0 :(得分:0)
您必须使用CassandraPageRequest.of(pageIndex, resultsOnPage)
为了能够在页面上使用 findAll 查询,您还必须使用CassandraRepositoy
扩展存储库接口,以实现查询的实现。
示例:
声明存储库接口
@Repository
public interface MyRepository extends CassandraRepository<MyModel, MapId>{
}
注入仓库并使用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
}
}