2

これが明らかな場合は申し訳ありませんが、私たちはこれについて数日間頭を悩ませてきました。

親、子、Xの3つのエンティティについて考えてみます。

親は子と@OneToManyの関係を持ち、カスケード削除と孤立した削除=trueに設定されています。

子には親との@ManyToOne関係があり、オプション= falseです。さらに、関係は@NotNullであり、@JoinColumnにはnullable=falseがあります。

Xには、オプション=trueの子と@ManyToOneの関係があります。

親を削除したときに理想的に発生したいことは次のとおりです。削除をカスケードして、削除された親に対応するすべての子行を削除します。今のところ問題ありません。ただし、削除された子を参照するXには、子の関係を無効にする必要もあります。Xを削除するのではなく、関係を無効にするだけです。これは、「オプション」の関係であることと一致しています。

Hibernateでこれをどのように行うのですか?理想的には、これらの関係を無効にするためにビジネスロジックを「覚えておく」必要がないように、宣言型にする必要があります。実際、カスケードを使用する場合は、オプションの関係が無効になる前にカスケードのレベルが多くなる可能性があることを考えると、実際には宣言型である必要があります。

ヒントはありますか?私たちは困惑しています...。

4

1 に答える 1

0

を使用して、コレクションを Child クラスの X にマップしinverse = falseます。

于 2012-07-12T09:05:07.677 に答える