#java #sql #spring-jdbc
#java #sql #spring-jdbc
Вопрос:
У меня есть такой запрос —
SELECT * FROM mytable WHERE id IN()
IN получит список идентификаторов, которых больше 1000
. Итак, мой запрос не выполняется в Oracle.
Один из вариантов заключается в том, что я вставляю идентификаторы во временную таблицу и изменяю приведенный выше запрос, чтобы присоединиться к этой новой таблице.
Предоставляет ли spring-jdbc что-нибудь для решения этой проблемы? Есть ли какой-либо шаблон, которому я могу следовать, чтобы написать свой DAO?
Ответ №1:
Я бы просто разделил список идентификаторов на фрагменты по 1000 и выполнил один и тот же запрос для каждого фрагмента. Это можно легко инкапсулировать в метод многоразовой утилиты.
Ответ №2:
Откуда берутся идентификаторы в первую очередь? Если они могут быть извлечены из существующих таблиц, тогда было бы легко создать ваш sql с подвыборкой для таблиц, содержащих идентификаторы?