Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JPA nhiều liên quan đến nhiều quan hệ không chèn vào bảng đã tạo

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel 5:đồng bộ hóa một trường bổ sung qua trục xoay

  2. Tạo bảng với tên động thông qua quy trình đã lưu trữ

  3. PHP với lỗi MySQL 8.0+:Máy chủ đã yêu cầu phương thức xác thực không xác định đối với máy khách

  4. Làm mới một trang PHP cho mỗi giây được xác định trước

  5. Bảo mật cơ bản, PHP mySQl