分離されたオブジェクトについて話しているのですが、後でsaveOrUpdate()で更新したいと思います。
参照されるコレクションをnullとclear()に同時に設定するにはどうすればよいですか?
A [1:1] B [1:M] C
BからCへの参照はnullになる可能性があります。これは、Bに対するCのレコードがないことを意味します。
同時にBをnullに設定して、すべてのCレコードがデータベースから削除されるようにしたいと思います。そして、saveOrUpdate A!
カスケードは、孤立の削除を含むすべてを休止状態にするように設定されています。
B.clear()を実行すると、Cからすべてのレコードが削除されます。
Bをnullに設定すると、Bがnullに設定されますが、Cレコードは削除されません。(なんて残念です!本当に便利ではありません!)
ではどうですか?
実際には、状況は奇妙です。
2つのトランザクションで回避策が見られます。最初のトランス:コレクションをクリアします。トランザクションをコミットします。
これで、すべてのCレコードが削除されます。
2番目のトランザクション:A.setB(null)。専念。これにより、フィールドがNULLに設定されます。
しかし、それを1つのステップで行う方法は?