Я хочу построить с моим весенним загрузочным приложением + тимелина, нумерацию страниц.Чтобы заархивировать это, мой репозиторий реализует 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());
}
У вас есть идеи, как решить эту проблему?