Doctrine级联实体清算

问题描述 投票:2回答:3

我在清理学说中存在以下问题:我有两个连接在一起的实体,可以说一个是主要实体,另一个是属于该主要实体的子实体。然后,当我使用相应的存储库进行清除时,它仅清除主实体,而留下子实体。刷新实体实际上可以正常工作,因为实体是通过级联连接的,所以当我刷新主实体时,子实体也会被刷新。但是这种级联似乎并没有奏效。有没有一种方法也可以清除所有子实体以及主要实体,而无需为子实体创建额外的存储库(实际上不需要其他东西)?先感谢您。编辑:好的,因为我似乎太不确定了,所以我的目标是清除原则中的实体,not在数据库中删除它们。问题是,我有很多要处理的实体,而学说并不能清除内存中的所有实体引用。因此,有没有一种方法可以级联它,或者我是否需要存储库?

最后编辑:问题已由理论解决。查看已接受的答案!

php symfony doctrine entity
3个回答
2
投票

截至上一次提交,此问题已解决。现在,级联清除对我来说就像一种魅力。非常感谢该学说的开发者!


0
投票

您需要在表示实体的字段的主实体中的映射信息中添加cascade={"remove"}


0
投票

您可以将cascade={"remove"}用于每个主要实体和子实体;它将删除内存中的子项,这可能会导致性能开销。如果要依靠更快,更可靠的DB进行删除,则可以在delete事件onDelete="CASCADE"上配置每一列(但是您没有提供任何代码,但请参见下面的示例)

© www.soinside.com 2019 - 2024. All rights reserved.