以上两个选项之间有什么区别?什么时候最好选择每个选项?
它们之间的基本区别是:
[使用orphanRemoval = true选项时,Doctrine做出了假设实体是私有的,不会被其他实体重用实体。如果您忽略此假设,您的实体将获得即使已将孤立实体分配给另一个。
说您的User
与Comment
具有一对多]关系。如果使用的是cascade="remove"
,则可以从一个[Comment
中删除User
的引用,然后将该Comment
附加到另一个User
] >。当您保留它们时,它们将被正确保存。但是,如果您使用的是orphanRemoval=true
,即使您从一个[Comment
中删除给定的User
,然后附加到另一个User
,此注释也将被删除。在持续期间,因为引用已被删除。