微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何分页到一定数量的项目?

如何解决如何分页到一定数量的项目?

我在存储库中进行分页,引入所有项目并在所有项目引入后停止搜索

List<MyList> myList = new ArrayList<>();
var page = Pageable.from(0,500);
Page<MyList> myListPage;
do {
      myListPage = repository.findByStatus(STATUS,page);
      var result = myListPage();
      myList(result);
      page = page.next();
 } while (!myListPage.isEmpty());

但现在我想分页,将物品带到特定数量,例如 1000 件。

当我带了 1000 件物品时,我停止搜索

我该怎么做?

我有一个 PageableRepository 那就是 extends 一个 CruRepository

解决方法

“保持简单,愚蠢”©Kelly Johnson

如果您需要 1000 个元素,为什么不将 1000 个设置为页面大小? 乍一看,我认为没有理由不将页面大小设置为 1000。

Pageable pageRequest = PageRequest.of(0,1000);
Page<YourEntity> results = repository.findAllByStatus(STATUS,pageRequest);

更新: 您可以运行计数查询以获取记录总数。然后你可以根据页面大小和偏移量计算你需要发出多少请求。

long allRecordsNumberWithGivenStatus = repository.countByStatus(status);

long allRecordsNumberWithGivenStatus = repository.countEnityByStatus(status);

我不记得语法了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。