Я ищу JPA-решение (независимое от поставщика) для выполнения запроса в пакетном режиме. Задача состоит в том, чтобы сделать это как быстродействующим, так и безопасным.
Пример запроса:
Query query = em.createQuery("select e from Entity e where e.property in :list");
Список представляет собой коллекцию размером от 1 до 385000. Следовательно, требуется пакетный запрос.
Первоначально наивный подход состоял в том, чтобы получить подсписок из исходного списка и выполнить цикл до завершения. Это было безопасно и работало хорошо, за исключением того, что оно не было эффективным.
Второй подход состоял в том, чтобы загрузить все из списка во временную таблицу (постоянную существующую, но используемую как временную таблицу), а затем использовать исходный запрос и соединиться с временной таблицей. Это определенно эффективно, но не поточно-ориентировано, так как мне нужно очищать временную таблицу после каждого пакета, и без какого-либо идентификатора потока или чего-то подобного в временной таблице, это довольно небезопасно (что на данный момент).
Буду очень признателен за предложения найти эффективный и безопасный способ решения этой проблемы.
Спасибо