Mysql
 sql >> Base de données >  >> RDS >> Mysql

Modélisation de la relation plusieurs-à-plusieurs dans JPA/Hibernate

Habituellement, pour implémenter une relation plusieurs à plusieurs, vous devez utiliser une table intermédiaire pour mapper les clés de deux autres tables.

Dans votre cas, vous avez besoin, par exemple, de t_students_friends tableau avec deux colonnes comme suit :

t_students_friends

étudiant_pk | ami_pk

Dans vos classes d'entités, vous aurez peut-être besoin de listes pour les étudiants et/ou les amis. Notez que @ManyToMany nécessite également un @JoinTable annotation au travail.Si vous souhaitez accéder aux amis d'un élève, ajoutez-le à votre 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;

Vous devez également modifier Friend classe comme suit. Ajouter

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

et utilisez simplement @Id int id comme vous le faites dans Etudiants. Il n'est pas nécessaire d'avoir une classe FriendsPK.

Pour plus d'informations, vous pouvez lire ici , par exemple.