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.