我正在寻找文件或回答级联如何为孩子的孩子工作,例如:
public class Parent{
@OneToMany(fetch = FetchType.EAGER,mappedBy = "parent",cascade = CascadeType.ALL)
private List<Child> child;
}
public class Child{
@OneToMany(mappedBy="child")
private List<AnotherChild> anohterChild;
}
@ManyToOne
private Parent parent;
}
现在的问题是,级联操作是否应用于&#34; Child&#34;来自父类适用于&#34; AnotherChild&#34; ? 换句话说,如果我坚持&#34;父母&#34;对象将持续存在&#34; AnotherChild&#34; ?
答案 0 :(得分:2)
如果你坚持你的父母,那么只有那些在你父类的子列表中的孩子才会被持久化,而不是你孩子班级中的AnotherChilds列表。
如果你想坚持他们,也只是级联它:
public class Child{
@OneToMany(mappedBy="child", cascade = CascadeType.PERSIST)
private List<AnotherChild> anohterChild;
@ManyToOne
private Parent parent;
}
当你真正需要时,只需使用CascadeType.ALL
,因为这种级联类型不仅仅包含持久性。如下图所示,CascadeType.ALL
包括所有其他级联类型,包括级联类型&#34;删除&#34;这意味着,当您的父对象被删除时,所有其他子对象也会被删除。