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

JPA relación de muchos a muchos que no se inserta en la tabla generada

Prueba esto:

public class Professor {
  @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
  @JoinTable(name = "ALUNO_PROFESSOR",
        joinColumns = @JoinColumn(name = "idProfessor", referencedColumnName = "idProfessor"),
        inverseJoinColumns = @JoinColumn(name = "idAluno", referencedColumnName = "idAluno"))
  private List<Aluno> alunoList;
}

public class Aluno {
  @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
  @JoinTable(name = "ALUNO_PROFESSOR",
        joinColumns = @JoinColumn(name = "idAluno", referencedColumnName = "idAluno"),
        inverseJoinColumns = @JoinColumn(name = "idProfessor", referencedColumnName = "idProfessor"))
  private List<Professor> professorList;
}

Esto asegurará que los metadatos para la relación muchos a muchos estén disponibles en ambas entidades y que las operaciones en cualquier lado de la relación se transmitan en cascada al otro lado.

También sugiero reemplazar FetchType.EAGER con FetchType.LAZY para un mejor rendimiento porque esto tiene el potencial de cargar un conjunto de datos muy grande.