0

我有两个具有多对多关系的表。我需要为这种关系添加一些额外的字段,所以我创建了一个新实体,它与两个表中的每一个都具有 ManyToOne 关系。我遇到的问题是删除关系实体。我不想删除两个表中的任何一个中的条目,我只想删除关系。我为设置相关实体​​所做的工作在此处进行了详细描述:

Doctrine2:使用参考表中的额外列处理多对多的最佳方法

为了删除关系,我尝试从其他两个表条目中删除相关元素,然后在相关实体中将这些表的引用设置为 null。这似乎不起作用;Doctrine 尝试执行查询以更新相关表中的条目并将两个外键设置为空。如果对它的所有引用都已删除,我希望它会删除相关表中的条目。

让我知道您是否想查看我的实体,或者这是否足够有意义。

4

1 回答 1

0

实际上,删除充当“连接表”的实体就可以了。什么都不应该级联。

所以假设你有这样的关系

User <- UserGroup -> Group

您只需要删除UserGroup实体。

如果你删除Useror Group,并且你已经正确设置了级联持久化操作,也UserGroup将继续。您还可以使用orphanRemoval来避免UserGroup分配给不同的UserGroup元素。

于 2012-07-15T18:02:50.227 回答