gpt4 book ai didi

java - 如何在 Spring Data Cassandra 中对数据进行分页?

转载 作者:行者123 更新时间:2023-12-01 17:52:34 25 4
gpt4 key购买 nike

我使用了 CassandraRepository,但无法对数据进行分页。

存储库:

@Repository
public interface AccountDaoInter extends CassandraRepository<Account,String> {
}

CassandraRepository中有一个方法findAll(Pageable pageable);。 (返回类型切片<>)

我使用 CassandraPageRequest 创建 Pageable。

服务:

@Override
public List<AccountDTO> findAll(Integer page){
Slice<Account> accounts = accountDaoInter.findAll(CassandraPageRequest.of(page,10));

return accounts
.stream()
.map(account -> modelMapper.map(account,AccountDTO.class)).collect(Collectors.toList());

}

Controller :

@GetMapping
public ResponseEntity<List<AccountDTO>> findAll(@RequestParam(name = "page") Integer p){
return ResponseEntity.ok(accountServiceInter.findAll(--p));
}

当页面值为1时,结果还可以。

当页面值为 2 或更高时,我收到内部服务器错误。

错误:

“无法为首页 (0) 以外的索引页面创建 Cassandra 页面请求。”

Error picture

Project

最佳答案

Cassandra 不支持获取随机页面,因为 Spring Data 会抛出 InvalidArgumentException。您应该获取第一页,然后迭代,直到到达请求的页面。您可以在有关分页的 Java 驱动程序文档 ( link ) 中找到有关它的更多信息以及此行为背后的基本原理。

关于java - 如何在 Spring Data Cassandra 中对数据进行分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60769877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com