最佳答案
我在父实体和子实体之间的简单 @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 请求的一部分发生。当按下保存按钮时,我没有已删除子元素的列表,所以我不能隐式地删除它们。