Om een veel-op-veel-relatie te implementeren, moet je meestal een middelste tabel gebruiken om sleutels van twee andere tabellen toe te wijzen.
In jouw geval heb je bijvoorbeeld t_students_friends
. nodig tabel met twee kolommen zoals de volgende:
t_students_friends
student_pk | friend_pk
In je entiteitslessen heb je misschien lijsten nodig voor studenten en/of vrienden. Merk op dat @ManyToMany
vereist ook een @JoinTable
annotatie aan het werk.Als je toegang wilt tot vrienden van een student, voeg dan toe aan je Student
klas:
@ManyToMany
@JoinTable(
name="t_students_friends",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;
Je moet ook Friend
aanpassen klasse als volgt. Toevoegen
@ManyToMany(mappedBy="friends")
private List<Student> students;
en gebruik eenvoudige @Id int id
veld zoals u doet in Studenten. Een FriendsPK-les is niet nodig.
Voor meer informatie kun je hier lezen , bijvoorbeeld.