Por lo general, para implementar una relación de muchos a muchos, necesita usar una tabla intermedia para asignar claves de otras dos tablas.
En tu caso necesitas, digamos, t_students_friends
tabla con dos columnas como la siguiente:
t_students_friends
estudiante_pk | amigo_pk
En las clases de su entidad, es posible que necesite Listas para estudiantes y/o amigos. Tenga en cuenta que @ManyToMany
también requiere un @JoinTable
anotación para trabajar. Si desea acceder a los amigos de un estudiante, agregue a su Student
clase:
@ManyToMany
@JoinTable(
name="t_students_friends",
[email protected](name="student_pk", referencedColumnName="id"),
[email protected](name="friend_pk", referencedColumnName="id"))
private List<Friend> friends;
También debe modificar Friend
clase de la siguiente manera. Añadir
@ManyToMany(mappedBy="friends")
private List<Student> students;
y usa simple @Id int id
como lo hace en Estudiantes. No hay necesidad en una clase de FriendsPK.
Para obtener más información, puede leer aquí , por ejemplo.