Thông thường, để triển khai quan hệ nhiều đến nhiều, bạn cần sử dụng một số bảng giữa để ánh xạ các khóa từ hai bảng khác.
Trong trường hợp của bạn, bạn cần, hãy nói, t_students_friends bảng có hai cột như sau:
t_students_friends
sinh viên_pk | friend_pk
Trong các lớp thực thể của bạn, bạn có thể cần Danh sách cho sinh viên và / hoặc bạn bè. Lưu ý rằng @ManyToMany cũng yêu cầu @JoinTable chú thích để hoạt động. Nếu bạn muốn truy cập bạn bè của một sinh viên, hãy thêm vào Student của bạn lớp:
@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;
Bạn cũng nên sửa đổi Friend lớp như sau. Thêm
@ManyToMany(mappedBy="friends")
private List<Student> students;
và sử dụng @Id int id đơn giản như bạn làm trong Sinh viên. Không cần tham gia lớp FriendsPK.
Để biết thêm thông tin, bạn có thể đọc tại đây , chẳng hạn.