JPA-отображение для Parent-Child с тем же классом - PullRequest
15 голосов
/ 21 декабря 2011

У меня есть следующая таблица:

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

Я бы хотел, чтобы класс Folder имел отношения родитель-потомок.

1 Ответ

24 голосов
/ 21 декабря 2011

Я считаю, что правильное сопоставление будет:

@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.

...