と の 2 つのエンティティがBackground
ありAction
ます。aBackground
には多くの がありActions
ます。
を削除すると、外部キーをnullに保ちBackground
たいと思います。制約を満たす方法でエンティティを効果的に孤立させる。cascade={"remove"}とorphanRemovalに関する非常に多くの記事と質問を読みましたが、これらはすべて、孤立したアクションを削除する (私が望んでいることではありません) か、何もしないようです - その結果、整合性制約違反が発生します。 .Action
SQLSTATE[23000]: Integrity constraint violation:
1451 Cannot delete or update a parent row:
a foreign key constraint fails (`Action`, CONSTRAINT
`FK_B7722E25C93D69EA` FOREIGN KEY (`background_id`)
REFERENCES `Background` (`id`))
今のところ、私が見つけた解決策は、関連するアクションを反復処理し、フィールドを null にして永続化することでした。これは最善の方法とは言えません。
foreach ($background->getActions() as $action) {
$action->setBackground(null);
}