spring-data-jpa Spring JPA分页迭代

xghobddn  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(189)

这可能是基本的,但下面的代码没有按预期工作。
下面的代码没有遍历所有页面!我正在验证这个数据库的行数和sum of currentPage.getContent().size()
代码段1:

Pageable pageRequest = PageRequest.of(page, pageSize, Sort.by("field").ascending());
Page<Something> currentPage;
do {
 currentPage = repo.findAll(pageRequest);
 // do something
 pageRequest = pageRequest.next();
} while(!currentPage.isLast());

代码段2:

Pageable pageRequest = PageRequest.of(page, pageSize, Sort.by("field").ascending());
Page<Something> currentPage = repo.findAll(pageRequest);
while(!currentPage.conetent().isEmpty()) {
 currentPage = repo.findAll(pageRequest);
 // do something
 pageRequest = pageRequest.next();
}
6ojccjat

6ojccjat1#

我不得不做同样的事情,我从你的代码片段开始。我测试了这个解决方案,它迭代了所有的结果。我从第0页开始。

Pageable pageRequest = PageRequest.of(0, PAGE_SIZE);
Page<Something> pageOfSomethings;

do {
  pageOfSomethings
      = somethingRepository.findBySomeCriterias(
      criteria,
      pageRequest
  );
  doSomethingWithResults(pageOfSomethings);
  pageRequest = pageRequest.next();
} while (pageOfSomethings.hasNext());

相关问题