Я пытаюсь выполнить каскадное удаление строк в таблице соединений через один из его внешних ключей, и у него есть другая связанная с ним таблица, которая также хотела бы удалить все строки, связанные с этим идентификатором. Таким образом, это выглядит как диаграмма ниже. Когда я использую Session.delete (reqCandObject) с hibernate, он отлично работает и каскадирует, удаляя одну запись из таблицы кандидат_jobReq, а также связанные с ней комментарии. Тем не менее, я хочу удалить все записи из записей кандидата_jobReq, которые имеют определенный идентификатор кандидата (а также удалить комментарии). Я попробовал функцию ниже, но в отличие от функции nice hibernate.delete (object), она запускается в внешний ключ ошибка ограничения. Как удалить эти строки при спящем режиме каскадировать удаление для меня?«Удалить где» каскадное удаление в спящем режиме?
public void deleteWhere(String selectionCase){
Session hibernateSession = this.getSession();
try {
hibernateSession.beginTransaction();
Query q = hibernateSession.createQuery("delete "+ type.getSimpleName() +" where " + selectionCase);
q.executeUpdate();
hibernateSession.getTransaction().commit();
} finally {
hibernateSession.close();
}
}
Я надеялся, что есть хороший, встроенный способ быстро справиться с этим делом, я думаю, нет: -/oh хорошо. Спасибо за информацию! –
@AdamJames добро пожаловать. –
они действительно должны улучшить это поведение! – Mitchapp