У меня есть сопоставление OneToMany, как показано ниже.
родитель:
@OneToMany(mappedBy = parent, orphanRemoval = true, cascade = { CascadeType.ALL})
private List<Child> childs = new ArrayList<Child>();
Ребенок:
@ManyToOne
@JoinColumn(name = "parentid")
private Parent parent;
При обновлении родительского объекта я получаю исключение:
A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
Мой код:
parent.getChild().clear();
parent.setChild(childList)
Вы удаляете дочерние элементы из родителя, но поскольку Child
является стороной-владельцем, вам необходимо удалить ссылку на Parent
из Child
объектов.
for (Child child: children) {
child.setParent(null);
}