При использовании запроса типа " select ... где x in (list) ", такого как ваш, Spring добавляет параметр связывания для каждого элемента списка.PostgreSQL ограничивает количество параметров связывания в запросе связыванием Short.MAX_VALUE, поэтому, когда список длиннее этого, вы получите это исключение.
Простым решением этой проблемы будет разделение списка на блоки.запросите для каждого из них и объедините результаты.
Примерно так, используя Guava:
List<QuoteEntity> result = new ArrayList<>();
List<List<Long>> partitionedQuoteIds = Lists.partition(quoteIds, 10000);
for (List<Long> partitionQuoteIds: partitionedQuoteIds) {
result.addAll(quoteRepository.findAllByQuoteIds(partitionQuoteIds))
}
Это очень расточительно при разбивке на страницы, но этого может быть достаточно для вашего использованиядело.