credo che la mappatura corretta sarebbe:
@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>();
}
Il @OneToOne
funzionerebbe solo se ciascun genitore ha avuto al massimo un bambino, il codice precedente funziona per il caso più generale, quando un genitore può avere molti figli . Inoltre, sto omettendo i metodi get/set per motivi di semplicità.
fonte
2011-12-21 03:48:20
Questo sembra abbastanza buono, tranne che dovrebbe essere un 'Set <>', non un 'Elenco <>'. –
Entrambe le raccolte vanno bene, una lista può essere utile per mantenere l'ordine di inserzione, un insieme per imporre l'unicità - in realtà dipende dal caso particolare, poiché entrambi sono validi e le specifiche non ne impongono l'uso l'uno sull'altro. Di fatto, molti generatori di codice per la mappatura JPA utilizzano in modo predefinito ArrayList per la relazione @OneToMany. –
ciao, quando faccio il fuoco elencare tutte le query. Va in loop infinito. Puoi guidarmi? –