Mysql
 sql >> Base de données >  >> RDS >> Mysql

La relation JPA plusieurs à plusieurs ne s'insère pas dans la table générée

Essayez ceci :

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;
}

Cela garantira que les métadonnées de la relation plusieurs-à-plusieurs sont disponibles sur les deux entités et que les opérations de chaque côté de la relation sont répercutées en cascade sur l'autre côté.

Je suggère également de remplacer FetchType.EAGER avec FetchType.LAZY pour de meilleures performances, car cela a le potentiel de charger un très grand ensemble de données.