Vanligtvis, för att implementera en många till många-relation behöver du använda någon mitttabell för att mappa nycklar från två andra tabeller.
I ditt fall behöver du, säg, t_students_friends
tabell med två kolumner som följande:
t_students_friends
student_pk | friend_pk
I dina entitetsklasser kan du behöva listor för studenter och/eller vänner. Observera att @ManyToMany
kräver också en @JoinTable
anteckning till arbetet. Om du vill komma åt vänner till en student, lägg till i din Student
klass:
@ManyToMany
@JoinTable(
name="t_students_friends",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;
Du bör också ändra Friend
klass enligt följande. Lägg till
@ManyToMany(mappedBy="friends")
private List<Student> students;
och använd enkel @Id int id
som du gör i Studenter. Det finns inget behov i en FriendsPK-klass.
För mer information kan du läsa här , till exempel.