Un'altra domanda Hibernate ...: PHibernate molti-a-molti con la stessa entità
Utilizzando quadro annotazioni di Hibernate, ho un'entità User
. Ogni User
può avere una raccolta di amici: una raccolta di altri User
s. Tuttavia, non sono stato in grado di capire come creare un'associazione Many-to-Many all'interno della classe User
che consiste in un elenco di User
s (utilizzando una tabella intermedia utente-amici).
Ecco la classe utente e le sue annotazioni:
@Entity
@Table(name="tbl_users")
public class User {
@Id
@GeneratedValue
@Column(name="uid")
private Integer uid;
...
@ManyToMany(
cascade={CascadeType.PERSIST, CascadeType.MERGE},
targetEntity=org.beans.User.class
)
@JoinTable(
name="tbl_friends",
[email protected](name="personId"),
[email protected](name="friendId")
)
private List<User> friends;
}
L'utente-amico tabella di mappatura ha solo due colonne, che sono entrambi chiavi esterne alla colonna uid
della tabella tbl_users
. Le due colonne sono personId
(che dovrebbe corrispondere all'utente corrente) e friendId
(che specifica l'ID dell'utente corrente dell'utente).
Il problema è che il campo "amici" continua a uscire nullo, anche se ho pre-compilato la tabella amici in modo tale che tutti gli utenti del sistema siano amici di tutti gli altri utenti. Ho anche provato a cambiare la relazione a @OneToMany
, e risulta ancora nulla (sebbene l'output di debug di Hibernate mostri una query SELECT * FROM tbl_friends WHERE personId = ? AND friendId = ?
, ma nient'altro).
Qualche idea su come compilare questo elenco? Grazie!
ti speravo Sono venuto in mio soccorso per la terza volta :) Ha funzionato perfettamente, e la tua spiegazione chiarisce la mia comprensione di ER in modo significativo. Grazie mille ancora una volta! :) – Magsol
Posso combinare amici e amiciDi? E se no, allora ho bisogno di aiuto con jsonmanagedreference e jsonbackreference in una entità in questa domanda: http://stackoverflow.com/questions/24563066/hibernate-user-and-friends-jsonreference – dikkini
Sto usando Hibernate 5 e una collezione è abbastanza: usare due crea righe duplicate in tbl_friends. – mdziob