У меня проблема с простым сопоставлением @OneToMany
между родительским и дочерним объектами. Все работает хорошо, только эти дочерние записи не удаляются, когда я удаляю их из коллекции.
Родитель:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
Ребенок:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Если я теперь удаляю и дочерний элемент из набора childs, он не удаляется из базы данных. Я попытался свернуть ссылку child.parent
, но это тоже не сработало.
Объекты используются в веб-приложении, удаление происходит как часть запроса Ajax. У меня нет списка удаленных дочерних элементов при нажатии кнопки сохранения, поэтому я не могу удалить их неявно.