学说:cascade =“删除”vs orphanremoval = true
上面两个选项有什么区别? 什么时候最好select每个选项?
他们之间的基本区别是:
当使用orphanRemoval = true选项时,Doctrine假定实体是私有的,不会被其他实体重用。 如果你忽略了这个假设,即使你把孤立的实体分配给另一个实体,你的实体也会被教义删除。
假设您的User
与Comment
一对多的关系。 如果您使用cascade="remove"
,您可以删除一个User
Comment
引用,然后将该Comment
附加到另一个User
。 当你坚持他们,他们将被正确保存。 但是,如果您正在使用orphanRemoval=true
,即使您将从一个User
删除给定的Comment
,然后附加到另一个User
,此留言将在保留期间被删除,因为该引用已被删除。