Java 三层数据,父子孙

Java 三层数据,父子孙,java,hibernate,Java,Hibernate,我有一个hibernate问题,我有三层数据,父子孙,父子一对多和子孙一对多。当我说parent save(hibernate会话保存方法)时,我无法保存数据,我使用cascade.ALL。我能够保存两层,父母对孩子一对多。在这种情况下我需要做什么。我有一个父母记录,其中有两个孩子记录,每个孩子记录有三个孙子记录。请帮助。您需要一对多的自我参考关系。你需要多少关卡并不重要 以下是一个很好的教程,可以指导您: 向我们展示hibernate实体的代码。在父实体和子实体中,级联设置是否正确?父:@En

我有一个hibernate问题,我有三层数据,父子孙,父子一对多和子孙一对多。当我说parent save(hibernate会话保存方法)时,我无法保存数据,我使用cascade.ALL。我能够保存两层,父母对孩子一对多。在这种情况下我需要做什么。我有一个父母记录,其中有两个孩子记录,每个孩子记录有三个孙子记录。请帮助。

您需要一对多的自我参考关系。你需要多少关卡并不重要

以下是一个很好的教程,可以指导您:

向我们展示hibernate实体的代码。在父实体和子实体中,级联设置是否正确?父:@Entity@Table(name=“enroll\u req\u cont”)公共类EnrollmentRequestContainer实现可序列化{parent:@Entity@Table(name=“enroll\u req\u cont”)公共类A实现可序列化{…其他字段,然后@OneToMany(fetch=FetchType.LAZY,级联={CascadeType.ALL,CascadeType.REMOVE}@JoinColumn(name=“container_id”)私有列表enrollmentRequest=new ArrayList();然后B:@Entity@Table(name=“enroll_request”)公共类B实现可序列化的{@OneToMany(fetch=FetchType.LAZY,cascade={CascadeType.ALL,CascadeType.REMOVE}@JoinColumn(name=“enrollment_id”)private List progArgList=new ArrayList();使用所有javax.persistence导入:import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;不要添加注释,请使用格式化代码片段编辑问题,但我的情况与示例中给出的不同,我的情况更简单,从父到子(一方当事人)子女对孙子(一方当事人)。我没有试图引用同一实体中的employee和manager。这是三个独立的实体。唯一的问题是Hibernate不会在grand child级别自动分配生成的密钥。修复了它,表中的密钥是外键,不应该从ddl中将其设置为not null,它应该为null,然后Hibernate将分配外键按正确的键。