以下のようなものはないと思いますが、聞いてみる価値はあると思いました。
Contact
次のプロパティを持つエンティティがあるとします。
@OneToMany(cascade = {CascadeType.ALL})
private List<Address> addresses;
Address
が一意であると仮定すると、他のに属することはできませんContact
。で実行される操作がカスケードされるようにカスケードを使用できることは明らかですが、DBから削除された場合にDBから削除するアノテーションがあります。Contact
Address
Address
List<Address> addresses
例えば。Contact
List<Address> addresses
施設には、3つの含まれているAddress
値を、Address#1
、Address#2
およびAddress#3
。
Address#3
が削除されContact
、エンティティマネージャを使用してDBにマージされます。この時点ではAddress#3
まだDBに存在しますが、何にも関連付けられていません。私はいつもこれを手動で扱ってきましたが、それは比較的一般的な出来事であり(少なくとも私にとっては)、これを処理する注釈があるかもしれないと私は思います。
孤立した削除オプションを試してください:
@OneToMany(cascade = {CascadeType.ALL}, , orphanRemoval="true")
private List<Address> addresses;
これにより、アドレスをリストから削除すると、アドレスが削除されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加