Biasanya, untuk mengimplementasikan relasi banyak ke banyak Anda perlu menggunakan beberapa tabel tengah untuk memetakan kunci dari dua tabel lainnya.
Dalam kasus Anda, Anda perlu, katakanlah, t_students_friends
tabel dengan dua kolom seperti berikut:
t_students_friends
mahasiswa_pk | teman_pk
Di kelas entitas Anda, Anda mungkin memerlukan Daftar untuk siswa dan/atau teman. Perhatikan bahwa @ManyToMany
juga membutuhkan @JoinTable
agar anotasi berfungsi. Jika Anda ingin mengakses teman seorang siswa, tambahkan ke Student
Anda kelas:
@ManyToMany
@JoinTable(
name="t_students_friends",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;
Anda juga harus mengubah Friend
kelas sebagai berikut. Tambahkan
@ManyToMany(mappedBy="friends")
private List<Student> students;
dan gunakan @Id int id
simple sederhana lapangan seperti yang Anda lakukan di Siswa. Tidak perlu di kelas FriendsPK.
Untuk informasi lebih lanjut, Anda dapat membaca di sini , misalnya.