Mysql
 sql >> Database >  >> RDS >> Mysql

Modellazione della relazione molti-a-molti in JPA/ibernazione

Di solito, per implementare una relazione molti a molti è necessario utilizzare una tabella intermedia per mappare le chiavi di altre due tabelle.

Nel tuo caso hai bisogno, diciamo, di t_students_friends tabella con due colonne come la seguente:

t_students_friends

studente_pk | amico_pk

Nelle tue classi di entità potresti aver bisogno di Liste per studenti e/o amici. Nota che @ManyToMany richiede anche un @JoinTable annotazione per funzionare.Se vuoi accedere agli amici di uno studente, aggiungi al tuo Student classe:

@ManyToMany
@JoinTable(
  name="t_students_friends",
  [email protected](name="student_pk", referencedColumnName="id"),
  [email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;

Dovresti anche modificare Friend classe come segue. Aggiungi

@ManyToMany(mappedBy="friends")
private List<Student> students;

e usa il semplice @Id int id campo come in Studenti. Non c'è bisogno di una classe FriendsPK.

Per ulteriori informazioni puoi leggere qui , per esempio.