質問

私は冬眠を使用しており、数回は親オブジェクトから子供へのカスケード削除操作を実装する必要がありました。次の2つのオプションを使用しました。

1つの選択肢は、親オブジェクトにgetChildren()を公開し、子供の返品コレクションに子供を追加し、冬眠が自動的にカスケード削除を許可することです。このオプションの欠点は、Hibernateのカスケードをサポートするためだけに使用されていても、GetChildren()コレクションを公開する必要があることです。

別のオプションは、ParentDao.delete(親)で子供を手動で削除して削除することです。このオプションの欠点は、よりカスタムコードです。ただし、Batch Deleteステートメントを使用する場合、このオプションはパフォーマンスを向上させる場合があります。

主にどのようなアプローチを使用していますか?他の長所と短所が見えますか?

役に立ちましたか?

解決

主にどのようなアプローチを使用していますか?他の長所と短所が見えますか?

本当のときにカスケードを使用します 構成 関係(そして、比較的少ないレコード数を削除する必要があります)。ただし、削除を実装するためだけにこのような関係を導入するのではなく、クエリ(バルクHQL削除またはネイティブSQLクエリ)を使用します。私の経験にとって、利点は必要な追加コードの「コスト」を上回ります(とにかく小さいです)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top