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",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](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.