У мене проблема з простим @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;
...
}
Якщо я зараз видалю і дочірнє з набору дітей, воно не видаляється з бази даних. Я спробував скасувати child.parent
посилання, але це теж не вийшло.
Суб'єкти використовуються у веб-програмі, видалення відбувається як частина запиту Ajax. У мене немає списку видалених дітей при натисканні кнопки збереження, тому я не можу їх видалити неявно.