sql >> Databáze >  >> RDS >> Mysql

Vztah JPA mnoho k mnoha se nevkládá do generované tabulky

Zkuste toto:

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

Tím bude zajištěno, že metadata pro vztah many-to-many budou dostupná na obou entitách a že operace na obou stranách vztahu budou kaskádovitě převedeny na druhou stranu.

Navrhuji také nahradit FetchType.EAGER pomocí FetchType.LAZY pro lepší výkon, protože to má potenciál načíst velmi velkou datovou sadu.



  1. Metoda hledání mezer v datech časových řad v MySQL?

  2. Problémy s příkazy MySQL a Python Select

  3. Mohu znovu použít počítané pole ve SELECT dotazu?

  4. Optimalizuji můj výpis mysql! - RAND() PŘÍLIŠ POMALÉ