Hãy thử điều này:
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;
}
Điều này sẽ đảm bảo rằng siêu dữ liệu cho mối quan hệ nhiều-nhiều khả dụng trên cả hai thực thể và các hoạt động ở một trong hai bên của mối quan hệ sẽ được chuyển sang phía bên kia.
Tôi cũng khuyên bạn nên thay thế FetchType.EAGER
với FetchType.LAZY
để có hiệu suất tốt hơn vì điều này có khả năng tải một tập dữ liệu rất lớn.