JPA: удалить детей в OneToMany

1

У меня есть сопоставление 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)
Теги:
jpa
jpa-2.0
children

1 ответ

1

Вы удаляете дочерние элементы из родителя, но поскольку Child является стороной-владельцем, вам необходимо удалить ссылку на Parent из Child объектов.

for (Child child: children) {
   child.setParent(null);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню