【发布时间】:2011-01-01 23:05:55
【问题描述】:
我对父实体和子实体之间的简单@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 请求的一部分。按下保存按钮时,我没有已删除子项的列表,因此我无法隐式删除它们。
【问题讨论】: