具有相同类的Parent-Child的JPA映射

时间:2011-12-21 03:31:03

标签: java hibernate jpa orm parent-child

我有以下表格:

FOLDER[
    id int,
    name varchar2(10),
    parent_folder_id int
]

我想让Folder类具有父子关系。

1 个答案:

答案 0 :(得分:21)

我相信正确的映射是:

@Entity
public class Folder {

    @Id
    @Column(name="PK_FOLDER")
    private int id;

    @Column(name="NAME")
    private String name;

    @ManyToOne
    @JoinColumn(name="FK_PARENT_FOLDER")
    public Folder parentFolder;

    @OneToMany(mappedBy="parentFolder")
    public List<Folder> subFolders = new ArrayList<Folder>();

}

@OneToOne只有在每个父母最多只有一个孩子的情况下才有效,上述代码适用于更一般的情况,父母可以有多个孩子。另外,为了简单起见,我省略了get / set方法。