SpringJPA使用Java流获取可分页内容

SpringJPA使用Java流获取可分页内容,java,spring,spring-boot,java-8,Java,Spring,Spring Boot,Java 8,我正在做一个搜索,使所有登记的汽车100个100个分页的方式 Pageable pageable = PageRequest.of(0, 100); Page<Car> listOfcars = carService.findAll(pageable); 有一种方法可以通过java流实现这一点,即搜索页面上的数据,然后立即搜索序列,而不必通过while?您可以通过了解可用页面的总数(可能首先需要一个总计数)来尝试,并将每个页面的数字表示存储在一个集合中(假设pages=[1,2,…

我正在做一个搜索,使所有登记的汽车100个100个分页的方式

Pageable pageable = PageRequest.of(0, 100);
Page<Car> listOfcars = carService.findAll(pageable);

有一种方法可以通过java流实现这一点,即搜索页面上的数据,然后立即搜索序列,而不必通过while?

您可以通过了解可用页面的总数(可能首先需要一个总计数)来尝试,并将每个页面的数字表示存储在一个集合中(假设pages=[1,2,…n])然后您可以创建一个方法OperateListOfCars,并使用pages.stream()为每个页面调用您的逻辑。也许可以创建一个CustomPageResult包装器,并将pages集合放在那里,这将有助于使代码更干净。

您可以通过了解可用页面的总数来尝试(可能首先需要一个总数)并将每个页面的数字表示形式存储在一个集合中(假设pages=[1,2,…n]),然后您可以创建一个方法OperateListOfCars,并使用pages.stream()调用每个页面的逻辑…可能会创建一个CustomPageResult包装器,并将页面集合放在那里,这将有助于使代码更加干净。

您不需要在此处进行流或循环,您可以使用方法从中返回列表中的所有内容

将页面内容作为列表返回

Pageable-Pageable=PageRequest.of(01100);
pagelistofcars=carService.findAll(可分页);
List cars=listOfCars.getContent();

这里不需要流或循环,您可以使用方法从中返回列表中的所有内容

将页面内容作为列表返回

Pageable-Pageable=PageRequest.of(01100);
pagelistofcars=carService.findAll(可分页);
List cars=listOfCars.getContent();

不明白你想说什么。请再次尝试清除帖子。不明白你想说什么。请再次尝试清除帖子。
while(listOfcars.hasNext()){
   listOfcars = carService.findAll(listOfcars.nextPageable());
   carService.start(listOfcars.getContent());
   log.info("New batch sent" + listOfcars.getTotalElements());
}
Pageable pageable = PageRequest.of(0, 100);
Page<Car> listOfcars = carService.findAll(pageable);
List<Car> cars = listOfCars.getContent();