[解決済み] JPA OneToManyで子が削除されない
2022-04-21 02:19:43
質問
単純な
@OneToMany
親エンティティと子エンティティの間のマッピング。すべてうまくいきますが、子レコードをコレクションから削除したときに、子レコードが削除されません。
親は
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
子です。
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
今子供セットから子供を削除すると、データベースから削除されません。を無効にすることを試みました。
child.parent
を参照していますが、これもうまくいきません。
エンティティはWebアプリケーションで使用され、削除はAjaxリクエストの一部として発生します。保存ボタンが押されたときに削除された子のリストを持っていないので、暗黙的に削除することはできません。
解決方法は?
JPAの動作は正しい(意味 仕様書通り オブジェクトは、OneToManyコレクションから削除されただけでは削除されません。OneToManyコレクションからオブジェクトを削除しても、オブジェクトは削除されません。
これは、JPAが、コレクションから削除されたものを削除すべきかどうか、実際にはわからないからです。オブジェクトモデリング用語では、これは 構成 と"aggregation*があります。
で 構成 親がいなければ子実体は存在しない。典型的な例は、家と部屋の間です。ハウスを削除すると、ルームも削除されます。
集計 は、より緩やかな種類の関連付けであり、コースと学生に代表される。コースを削除しても、学生は (おそらく他のコースに) まだ存在します。
そのため、ベンダー固有の拡張機能を使用してこの動作を強制するか (可能な場合)、明示的に子を削除し、親のコレクションから削除する必要があります。
私が認識しているのは
- ハイバーネート : delete_orphan をカスケードします。を参照してください。 10.11. 遷移的持続性 および
- エクリプスリンク これを「私的所有権」と呼んでいます。参照 PrivateOwnedアノテーションの使い方 .
関連
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
JSPで「リストが型解決できない!」の解決方法
-
[解決済み] JPA EntityManager。なぜmerge()ではなくpersist()を使うのか?
-
[解決済み] JPA OneToMany/ManyToOne 双方向アソシエーションにおける「アソシエーションの逆側」とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
final, finally, finalizeの違いについて話してください。
-
Dateが型に解決できない問題を解決する
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
javaで非静的な解を静的な参照にすることができない
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
このラインで複数のマーカーを解決する方法