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",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](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.