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",
example@sqldat.com(name="student_pk", referencedColumnName="id"),
example@sqldat.com(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.