sql >> データベース >  >> RDS >> Mysql

生成されたテーブルに挿入されないJPA多対多の関係

    これを試してください:

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

    これにより、多対多の関係のメタデータが両方のエンティティで利用可能になり、関係のいずれかの側の操作がもう一方の側にカスケードされるようになります。

    FetchType.EAGERを置き換えることもお勧めします FetchType.LAZYを使用 非常に大きなデータセットをロードする可能性があるため、パフォーマンスが向上します。



    1. 2つの日付間の時間差を分単位で計算する

    2. mysql_last_id()を使用した競合状態

    3. 販売データベースを持つことの利点は何ですか?

    4. OPENROWSETエラーを使用してAccess2007データをクエリするSQLServer2012