我想用我的Spring Boot应用程序+ thymeleaf构建一个分页。为了对此进行归档,我的存储库实现了JpaRepository
。现在,我不想使用Page<T> findAll()
函数,但是我想使用自己的函数。在此查询中,我有一个这样的IN子句:
SELECT car FROM CarEntity car WHERE car.producer IN (:producers)
在我的代码中,:producers
后面的列表可能有1000多个条目,并且由于限制,我们的oracle数据库抛出异常。
目前,我不使用'Page'作为返回类型,而是获得了List<T>
的所选项目,然后根据实际页面将其拆分并返回子列表。代码如下:
public List<Car> getCarsByCarProducers(List<CarProducer> pCarProducers) {
return pCarProducers.stream()
.collect(Collectors.groupingBy(it -> counter.getAndIncrement() / pChunkSize))
.values()
.stream()
.map(partitionedList -> myCarRepository.getCarsByProducers(partitionedList))
.flatMap(List::stream)
.collect(Collectors.toList());
}
您知道如何解决此问题吗?