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.