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.