У меня есть какая-то тривиальная таблица в базе данных (скажем, Oracle10g), и мне нужно реализовать при DAO возможность удаления нескольких записей. Метод remove()
получает в качестве параметра массив идентификаторов (целых чисел).
На данный момент у меня есть строка запроса "DELETE FROM news WHERE id = ?"
, которую я использую в PreparedStatement . Я просто добавляю пакет для каждого идентификатора из массива, а затем выполняю execute на PreparedStatement .
Интересно, есть ли возможность выполнить это с помощью одного оператора запроса, что-то вроде "DELETE FROM news WHERE id IN ?"
. Но я не могу найти, как правильно установить массив целых чисел вместо '?'
.
Тот же вопрос относится к Hibernate и JPA . Если есть какие-либо конструкции, чтобы решить эту проблему? Потому что теперь я использую пакетный способ: добавьте Query к Session для каждого идентификатора из массива и совершите транзакцию.