Obvykle k implementaci vztahu mnoho k mnoha potřebujete použít nějakou střední tabulku k mapování klíčů ze dvou dalších tabulek.
Ve vašem případě potřebujete, řekněme, t_students_friends tabulka se dvěma sloupci, jako je tato:
t_students_friends
student_pk | friend_pk
Ve svých třídách entit můžete potřebovat seznamy pro studenty a/nebo přátele. Všimněte si, že @ManyToMany také vyžaduje @JoinTable anotaci do práce. Pokud chcete získat přístup k přátelům studenta, přidejte do Student třída:
@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;
Měli byste také upravit Friend třídy následovně. Přidat
@ManyToMany(mappedBy="friends")
private List<Student> students;
a použijte jednoduchý @Id int id oboru jako v Studenti. Třída FriendsPK není potřeba.
Další informace si můžete přečíst zde , například.