sql >> Base de Datos >  >> RDS >> Mysql

Modelado de una relación de muchos a muchos en JPA/Hibernate

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.