Особые узлы в JPA с CascadeType.ALL
Несмотря на использование JPA CascadeType.ALL, потерянные узлы сохраняются в базе данных, что затрудняет удаление. Чтобы решить эту проблему, существует несколько подходов в зависимости от поставщика персистентности и версии JPA:
Конфигурация Hibernate
При использовании Hibernate явно определите аннотацию CascadeType.DELETE_ORPHAN в в сочетании с JPA CascadeType.ALL:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private Listbikes;
Решение JPA (без Hibernate)
При отсутствии Hibernate явно удаляйте дочерние элементы перед удалением родительской записи:
JPA 2.0
В JPA 2.0 появился атрибут orphanRemoval:
@OneToMany(mappedBy="foo", orphanRemoval=true)
Установив для orphanRemoval значение true, JPA автоматически удалит потерянные дочерние записи при удалении родительского объекта.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3