Um eine Viele-zu-Viele-Beziehung zu implementieren, müssen Sie normalerweise eine mittlere Tabelle verwenden, um Schlüssel aus zwei anderen Tabellen abzubilden.
In Ihrem Fall benötigen Sie beispielsweise t_students_friends
Tabelle mit zwei Spalten wie der folgenden:
t_students_friends
student_pk | friend_pk
In Ihren Entitätsklassen benötigen Sie möglicherweise Listen für Schüler und/oder Freunde. Beachten Sie, dass @ManyToMany
erfordert auch eine @JoinTable
Anmerkung zur Arbeit. Wenn Sie auf die Freunde eines Schülers zugreifen möchten, fügen Sie ihn zu Ihrem Student
hinzu Klasse:
@ManyToMany
@JoinTable(
name="t_students_friends",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;
Sie sollten auch Friend
ändern Klasse wie folgt. Hinzufügen
@ManyToMany(mappedBy="friends")
private List<Student> students;
und verwenden Sie einfach @Id int id
wie in Studenten. Eine FriendsPK-Klasse ist nicht erforderlich.
Weitere Informationen finden Sie hier , zum Beispiel.