具有相同类的父子项的 JPA 映射

2022-09-02 12:53:43

我有下表:

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

我希望 Folder 类具有父子关系。


答案 1

我相信正确的映射是:

@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>();

}

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


答案 2

推荐