Mysql
 sql >> Database >  >> RDS >> Mysql

JPA da molti a molti non si inserisce nella tabella generata

Prova questo:

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

Ciò garantirà che i metadati per la relazione molti-a-molti siano disponibili su entrambe le entità e che le operazioni su entrambi i lati della relazione siano sovrapposte all'altro lato.

Suggerisco anche di sostituire FetchType.EAGER con FetchType.LAZY per prestazioni migliori perché questo ha il potenziale di caricare un set di dati molto grande.