小孩的孩子的JPA Hibernate级联型

时间:2018-03-24 18:31:04

标签: java spring hibernate jpa cascade

我正在寻找文件或回答级联如何为孩子的孩子工作,例如:

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; ?

1 个答案:

答案 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;这意味着,当您的父对象被删除时,所有其他子对象也会被删除。

enter image description here