2011-12-21 7 views

Respuesta

15

creo que la asignación correcta sería:

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

} 

El @OneToOne funcionaría sólo si cada padre tenía como máximo un niño, el código anterior funciona para el caso más general, cuando un padre puede tener muchos hijos . Además, estoy omitiendo los métodos get/set por simplicidad.

+0

Esto se ve bastante bien, excepto que debe ser un 'Set <>', no un 'List <>'. –

+2

Ambas colecciones están bien, una lista puede ser útil para mantener el orden de inserción, un conjunto para aplicar la unicidad; realmente depende del caso particular, ya que ambas son válidas y la especificación no impone el uso de una sobre la otra. De hecho, muchos generadores de código para mapeo JPA usan de forma predeterminada el uso de ArrayLists para la relación @OneToMany. –

+0

hola, cuando disparo lista todas las consultas. Va en un bucle infinito. ¿Puedes guiarme? –

Cuestiones relacionadas