9
mam poniższej tabeli:WZP mapowanie dla rodzic-dziecko z tej samej klasy
FOLDER[
id int,
name varchar2(10),
parent_folder_id int
]
chciałbym mieć klasę Folder mieć relacji rodzic-dziecko.
mam poniższej tabeli:WZP mapowanie dla rodzic-dziecko z tej samej klasy
FOLDER[
id int,
name varchar2(10),
parent_folder_id int
]
chciałbym mieć klasę Folder mieć relacji rodzic-dziecko.
wierzę prawidłowe odwzorowanie byłoby:
@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
będzie działać tylko wtedy, gdy każdy z rodziców miał co najwyżej jedno dziecko, powyższy kod działa dla bardziej ogólnym przypadku, gdy rodzic może mieć wiele dzieci . Poza tym pomijam metody get/set ze względu na prostotę.
Wygląda całkiem nieźle, poza tym, że powinien to być "Set <>", a nie "List <>". –
Obie kolekcje są w porządku, lista może być przydatna do utrzymania zamówienia reklamowego, zestaw do wymuszania unikalności - to naprawdę zależy od konkretnego przypadku, ponieważ oba są ważne, a specyfikacja nie wymusza użycia jednej na drugiej. W rzeczywistości wiele generatorów kodu dla mapowania JPA domyślnie korzysta z ArrayLists dla relacji @OneToMany. –
cześć, Kiedy uruchamiam listę wszystkich zapytań. To idzie w nieskończoną pętlę. Czy możesz mnie prowadzić? –