@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
参照を無効にしてみましたが、それもうまくいきませんでした。
エンティティはWebアプリケーションで使用され、削除はAjaxリクエストの一部として行われます。保存ボタンを押したときに削除された子のリストがないため、暗黙的に削除することはできません。