Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JPA-Viele-zu-Viele-Beziehung wird nicht in generierte Tabelle eingefügt

Versuchen Sie Folgendes:

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

Dadurch wird sichergestellt, dass die Metadaten für die Viele-zu-Viele-Beziehung auf beiden Entitäten verfügbar sind und dass Vorgänge auf beiden Seiten der Beziehung auf die andere Seite kaskadiert werden.

Ich schlage auch vor, FetchType.EAGER zu ersetzen mit FetchType.LAZY für eine bessere Leistung, da dies das Potenzial hat, einen sehr großen Datensatz zu laden.