上面2个选项有什么区别?什么时候最好选择每个选项?
它们之间的基本区别是:
当使用 orphanRemoval=true 选项时,Doctrine 假设实体是私有的,不会被其他实体重用。如果您忽略此假设,即使您将孤立实体分配给另一个实体,您的实体也会被 Doctrine 删除。
假设您的 User
与 Comment
具有 一对多 关系。如果您使用 cascade="remove"
,您可以从一个 User
中删除对 Comment
的引用,然后附加该 Comment
到另一个 User
。当您持久保存它们时,它们将被正确保存。但如果您使用的是 orphanRemoval=true
,即使您将从一个 User
中删除给定的 Comment
,然后附加到另一个 User
< /em>,因为引用已被删除,所以在persist期间将删除此评论。
不定期副业成功案例分享