Hibernate 如何使用JPA1映射和持久化树

Hibernate 如何使用JPA1映射和持久化树,hibernate,jakarta-ee,jpa,Hibernate,Jakarta Ee,Jpa,我有一个DB表,其中包含以下内容: Person ID | ParentID | Name 每个人都有一个父母(只有一个)。每个人可能有N个孩子 我的问题是如何使用JPA1和Hibernate在实体中正确地映射这一点。我的目标是只让1个Java对象(我的祖父母)正确填充了其中的所有子对象。当我坚持我的祖父母时,我希望所有的孩子也能正确地坚持 我目前取得的成就如下: @ManyToOne() @JoinColumn(name="PARENTID") private Person pare

我有一个DB表,其中包含以下内容:

Person 
ID | ParentID | Name
每个人都有一个父母(只有一个)。每个人可能有N个孩子

我的问题是如何使用JPA1和Hibernate在实体中正确地映射这一点。我的目标是只让1个Java对象(我的祖父母)正确填充了其中的所有子对象。当我坚持我的祖父母时,我希望所有的孩子也能正确地坚持

我目前取得的成就如下:

 @ManyToOne()
 @JoinColumn(name="PARENTID")
 private Person parent;

 @OneToMany(mappedBy = "parent", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
 private List<Person> children;
@ManyToOne()
@JoinColumn(name=“PARENTID”)
私人家长;
@OneToMany(mappedBy=“parent”,fetch=FetchType.LAZY,cascade=CascadeType.ALL)
私人名单儿童;
当我坚持我的祖父母时,所有人都正确地添加到我的数据库中,但PARENTID列为NULL,这是不正确的


我如何正确地映射它,以便JPA/Hibernate正确设置PARENTID?

哪个PARENTID为空?所有这些,还是只针对“顶级”对象?或许可以看看。对于单向树,将
@JoinColumn
放在子树上,对于双向树,将
@JoinColumn
同时放在父树和子树上。所有parentID都设置为Null可能是将赏金放在该树上的时候了?:)哪个parentId为空?所有这些,还是只针对“顶级”对象?或许可以看看。对于单向树,将
@JoinColumn
放在子树上,对于双向树,将
@JoinColumn
同时放在父树和子树上。所有parentID都设置为Null可能是将赏金放在该树上的时候了?:)