Doctrine: cascade="remove" vs orphanRemoval=true
2023-08-31 15:47:11
質問
上記の2つの選択肢の違いは何ですか?また、どのような場合にそれぞれの選択肢を選ぶとよいですか?
どのように解決するのですか?
両者の基本的な違いは
orphanRemoval=true オプションを使うとき、Doctrine はエンティティが個人所有であり はエンティティが個人所有のものであり、他のエンティティによって再利用されることはない、と仮定します。 エンティティに再利用されることはありません。この仮定を無視した場合、エンティティは によって削除されてしまいます。 を別のエンティティに割り当てたとしても、Doctrine によって削除されてしまいます。
例えば、あなたの
User
があります。
一対多
との関係
Comment
. もし、あなたが
cascade="remove"
を使用している場合は
Comment
を一つの
User
というように、その
Comment
を別の
User
. それらを永続化すると、正しく保存されます。しかし、もしあなたが
orphanRemoval=true
を使っている場合は、たとえ与えられた
Comment
を1つの
User
を作成し、別の
User
を付けると、参照が削除されたため、このコメントは永続化中に削除されます。
関連
-
[解決済み】doctrine2での削除カスケードについて
-
[解決済み】JPA orphanRemoval=trueとON DELETE CASCADE DML句との相違点
-
[解決済み】Symfony 2.xでは、本当にすべてをバンドルにすべきなのか?
-
[解決済み】Twigテンプレートで現在のURLを取得する?
-
[解決済み] [Solved] "on delete cascade "制約を追加する方法は?
-
[解決済み] JPAにおけるCascadeType.REMOVEとorphanRemovalの違いは何ですか?
-
[解決済み] symfony2 : リクエストをフォームにバインドした後にフォームのバリデーションエラーを取得する方法
-
[解決済み] Symfony 2: テンプレート内でユーザーがログインしていないことを確認するにはどうすればよいですか?
-
[解決済み] Doctrine リスナー vs サブスクライバー
-
ドクトリン・カスケード・オペレーションを理解する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Symfony 2.xでは、本当にすべてをバンドルにすべきなのか?
-
[解決済み] Symfony2 の config.yml から設定を読み込むには?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] symfony2 : リクエストをフォームにバインドした後にフォームのバリデーションエラーを取得する方法
-
[解決済み] Doctrine 2 は manyToOne リレーションで nullable=false を使うことはできないのですか?
-
[解決済み] Symfony 2: テンプレート内でユーザーがログインしていないことを確認するにはどうすればよいですか?
-
[解決済み] Symfony2でTwigテンプレート内の環境名を取得する
-
[解決済み] EntityManagerは終了しました。
-
[解決済み] composerのインストールが300秒後にタイムアウトするのはなぜですか?
-
[解決済み] symfony 2 の "弱いルート" とは何ですか?