リンクテーブルに追加のフィールドがある場合、多対多の関係があります。したがって、関係は、以下のチュートリアルに従って 2 つの一対多の関係で行われます。
リンクテーブルを定義し、@Embeddable IDフィールドで構成される3番目のエンティティの2つのエンティティがあります。
関係は次のように定義されます。
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.compound", cascade = CascadeType.ALL)
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.structure", cascade = CascadeType.ALL)
pk = @Embeddable ID フィールド。挿入と削除は正常に機能しますが、呼び出すと
session.merge(compound);
私は StackOverflowError を取得し、ログは hibernate が大量の select ステートメントを作成していることを示しています。データベースには 1 つの関連付けが含まれていることに注意してください。2 つの構造を含む 1 つの化合物。休止状態が無限ループに入るようです。
http://giannigar.wordpress.com/2009/09/04/mapping-a-many-to-many-join-table-with-extra-column-using-jpa/でもこのソリューションを見ましたが、どのようにこれで更新しますか?