![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
danik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.2.2007 Репутация: нет Всего: нет |
Необходимо, используя Hibernate + Spring, удалить из базы список объектов (список формируется из отмеченных пользователем на странице строк). Каким образом можно удалить одним запросом?
deleteAll(List) не в счёт. |
|||
|
||||
necromancer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 26.7.2006 Где: Москва Репутация: 6 Всего: 7 |
createQuery("delete form.... where ...").execute();
-------------------- С уважением, Виталий Смык ---------------------------------------------------------------------------------------------- SCJP, SCWCD, OCA http://dev.maryno.net/video/ |
|||
|
||||
danik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.2.2007 Репутация: нет Всего: нет |
Каким образом Вашим способом можно решить мою проблему я не понимаю: а если нужно удалить около сотни объектов из базы, каким макаром сформировать строку запроса?
|
|||
|
||||
necromancer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 26.7.2006 Где: Москва Репутация: 6 Всего: 7 |
разных объектов не связаных одним свойством? никак.
Тогда удаляем по одному. А что бывают другие варианты? хотя бы в том же простом jdbc? Если таковые варианты и есть то они в итоге будут иметь вид: delete from ... where id=... or id=... or id=.. and etc или если упрость =) delete from ... where id IN (...,...,...,... and etc) -------------------- С уважением, Виталий Смык ---------------------------------------------------------------------------------------------- SCJP, SCWCD, OCA http://dev.maryno.net/video/ |
|||
|
||||
danik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.2.2007 Репутация: нет Всего: нет |
Отчего же? вышеупомянутый deleteAll(List) (спринговый) позволяет удалить список объектов с проинициализированными id. Мне нужен просто некий аналогичный метод\подход. Такая уж задача поставлена. В JDBC конечно ничего подобного нету. Общих свойств у объектов тоже нету. Они абсолютно произвольные, выбранные пользователем. Идея с одним запросом на каждый объект недопустима. |
|||
|
||||
AlexeyVorotnikov |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 3 Всего: 18 |
Тогда, по-моему, только как necromancer советовал.
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
||||
|
|||||
danik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.2.2007 Репутация: нет Всего: нет |
Ну что ж, сделаем так.
Получилось что-то вроде этого:
где newsID - Long[] с айдишниками. В результате hibernate сформировал запрос, который предлагал necromancer и AlexeyVorotnikov (delete from table where id in (id1, id2, ....)). Этот способ стократ круче, т. к. используя deleteAll(Collection) количество сгенерированных запросов равняется количеству удаляемых объектов = / Всем спасибо и низкий поклон ![]() Это сообщение отредактировал(а) danik - 25.7.2007, 18:44 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |