原则抛出错误:删除实体后"A new entity was found through the relationship"



假设我有两个实体,ProjectUser有关系。

项目.php

/**
* @var User
*
* @ORMManyToOne(targetEntity="User")
* @ORMJoinColumn(onDelete="SET NULL")
*/
private $creator;

当我删除User实体时,doctrine会将User对象(没有ID(留在Project实体中。在正常情况下,这很好,但我使用的是DomainEvents。在这种情况下,删除User实体后,DomainEvent会触发在DB中保存一些数据,而二次保存数据(删除后(会引发此错误。之所以会发生这种情况,是因为现在在Project实体中,我们有一个没有ID的(从EM(User对象。

我想到了一个监听器,它会在删除后删除实体中的空对象,但我不确定这是一个好的变体

解决此错误的最佳变体是什么?

onDelete选项不应用级联移除。如果你想这样做,我认为你应该将cascade={"remove"}选项添加到ManyToOne中。

尝试如下:

/**
* @var User
*
* @ORMManyToOne(targetEntity="User", cascade={"remove"})
* @ORMJoinColumn(onDelete="SET NULL")
*/
private $creator;

删除条令中的实体

相关内容

  • 没有找到相关文章

最新更新