Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Modellierung einer Viele-zu-Viele-Beziehung in JPA/Hibernate

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.