JPA CascadeType.ALL: 孤立したノードの削除
CascadeType.ALL 関連付けで JPA を利用する場合、孤立したノードの削除で問題が発生する可能性があります。デフォルトでは、CascadeType.ALL は親エンティティの削除時に孤立したエンティティを自動的に削除しません。
この問題に対処するには、いくつかのオプションがあります。
Hibernate を使用する
Hibernate を使用している場合は、CascadeType.ALL と組み合わせて CascadeType.DELETE_ORPHAN アノテーションを指定できます。これにより、親エンティティが削除されるときに、孤立したエンティティも自動的に削除されます。
Hibernate を使用しない場合
Hibernate を使用しない場合は、親を削除する前に孤立したエンティティを手動で削除する必要があります。エンティティを使用して、孤立したレコードがデータベースに残らないようにします。推奨する実行順序は次のとおりです。
JPA 2.0 の機能強化
JPA 2.0 では orphanRemoval = true オプションが導入されています、親エンティティが削除されたときに、孤立したエンティティの削除が自動化されます。このオプションは、次のように @OneToMany アノテーションとともに使用できます:
@OneToMany(mappedBy="foo", orphanRemoval=true)
以上が以下にいくつかのタイトルのオプションを示します。それぞれが記事の異なる側面を強調しています。 問題に焦点を当てます: * JPA CascadeType.ALL: 孤立したノードの削除が自動的に行われない理由 * 孤立したものを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。