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