2011-12-21 13 views

Odpowiedz

15

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

+0

Wygląda całkiem nieźle, poza tym, że powinien to być "Set <>", a nie "List <>". –

+2

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

+0

cześć, Kiedy uruchamiam listę wszystkich zapytań. To idzie w nieskończoną pętlę. Czy możesz mnie prowadzić? –

Powiązane problemy