spring-jdbc для запроса IN, имеющего более 1000 идентификаторов

#java #sql #spring-jdbc

#java #sql #spring-jdbc

Вопрос:

У меня есть такой запрос —

 SELECT * FROM mytable WHERE id IN()
  

IN получит список идентификаторов, которых больше 1000 . Итак, мой запрос не выполняется в Oracle.

Один из вариантов заключается в том, что я вставляю идентификаторы во временную таблицу и изменяю приведенный выше запрос, чтобы присоединиться к этой новой таблице.

Предоставляет ли spring-jdbc что-нибудь для решения этой проблемы? Есть ли какой-либо шаблон, которому я могу следовать, чтобы написать свой DAO?

Ответ №1:

Я бы просто разделил список идентификаторов на фрагменты по 1000 и выполнил один и тот же запрос для каждого фрагмента. Это можно легко инкапсулировать в метод многоразовой утилиты.

Ответ №2:

Откуда берутся идентификаторы в первую очередь? Если они могут быть извлечены из существующих таблиц, тогда было бы легко создать ваш sql с подвыборкой для таблиц, содержащих идентификаторы?