child 的 child 的 JPA Hibernate 级联类型
JPA Hibernate cascade type for child of child
我正在寻找文档或回答级联如何为 child 的 child 工作,例如:
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;
}
现在的问题是,从 parent class 应用于 "Child" 的级联操作是否适用于 "AnotherChild"?
换句话说,如果我坚持 "Parent" Object 它会坚持 "AnotherChild" 吗?
如果您保留 parent,只有 parent-class 的 child-list 中的子项会保留,但 child-class 中的 AnotherChilds 列表不会保留。
如果你也想持久化它们,也可以将其级联:
public class Child{
@OneToMany(mappedBy="child", cascade = CascadeType.PERSIST)
private List<AnotherChild> anohterChild;
@ManyToOne
private Parent parent;
}
并且CascadeType.ALL
真正需要的时候才用,因为这个cascade-type包含的不仅仅是坚持。如下图所示,CascadeType.ALL
包括所有其他 cascade-type,包括 cascade-type "remove",这意味着,当您的 parent-object 被删除时,所有其他 child-objects 也被删除。
我正在寻找文档或回答级联如何为 child 的 child 工作,例如:
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;
}
现在的问题是,从 parent class 应用于 "Child" 的级联操作是否适用于 "AnotherChild"? 换句话说,如果我坚持 "Parent" Object 它会坚持 "AnotherChild" 吗?
如果您保留 parent,只有 parent-class 的 child-list 中的子项会保留,但 child-class 中的 AnotherChilds 列表不会保留。
如果你也想持久化它们,也可以将其级联:
public class Child{
@OneToMany(mappedBy="child", cascade = CascadeType.PERSIST)
private List<AnotherChild> anohterChild;
@ManyToOne
private Parent parent;
}
并且CascadeType.ALL
真正需要的时候才用,因为这个cascade-type包含的不仅仅是坚持。如下图所示,CascadeType.ALL
包括所有其他 cascade-type,包括 cascade-type "remove",这意味着,当您的 parent-object 被删除时,所有其他 child-objects 也被删除。