Попросить Hibernate не выполнять каскад при использовании таблицы соединений?
Когда я удаляю запись из таблицы r, она, в свою очередь, удаляет запись из таблицы связей b, потому что r имеет отношение "многие ко многим" с b, и я использую Hibernate Join Table, чтобы связать их. Вот где возникает моя проблема: у меня есть представление, которое опирается на эту таблицу связывания b, и результат удаления r вызывает удаление из представления, но теперь эта запись представления больше не существует. Из-за этого я получаю исключение Stale State.
Могу ли я попросить Hibernate игнорировать каскадные удаления? Я пытался удалить записи таблицы b, прежде чем пытаться удалить, но это не работает.
1 ответ
Немного ржавчина, но я считаю, что вы можете управлять каскадным поведением в аннотации объявления соединения, например:
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<OtherData> dontDeleteMe;
Которые каскадно сохраняют и объединяют операции, но не обновляют или удаляют.
Проверьте эту страницу для более подробной информации:
http://vladmihalcea.com/a-beginners-guide-to-jpa-and-hibernate-cascade-types/