Doctrine orm doctrine2使用关系合并对象

Doctrine orm doctrine2使用关系合并对象,doctrine-orm,Doctrine Orm,我有一个实体,它本身有一个OneToMany关系(注意,它使用单表继承) 我从api创建这个实体,然后将其持久化。如果它已经存在,我使用$em->merge($post)来更新它 这是唯一有效的方法。我从该方法获得的实体与我想要的完全相同,但不会更新注释的外键。如果我再次查询帖子,注释数组仍然包含应该删除的旧实体 一个快速的解决方案是在合并之前删除所有评论,但我想要一个更好的解决方案 /** * @ORM\Table() * @ORM\Entity() * @ORM\Inheritance

我有一个实体,它本身有一个OneToMany关系(注意,它使用单表继承)

我从api创建这个实体,然后将其持久化。如果它已经存在,我使用
$em->merge($post)
来更新它

这是唯一有效的方法。我从该方法获得的实体与我想要的完全相同,但不会更新注释的外键。如果我再次查询帖子,注释数组仍然包含应该删除的旧实体

一个快速的解决方案是在合并之前删除所有评论,但我想要一个更好的解决方案

/**
 * @ORM\Table()
 * @ORM\Entity()
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="discr", type="string", length=30)
 **/
abstract class PlatformPost
{
    // [...]

    /**
     * @var PlatformPost
     *
     * @ORM\ManyToOne(targetEntity="PlatformPost", inversedBy="comments")
     */
    private $parent;

    /**
     * @var PlatformPost[]|Collection
     *
     * @ORM\OneToMany(targetEntity="PlatformPost", mappedBy="parent", orphanRemoval=true, cascade={"ALL"})
     * @Assert\Valid()
     */
    private $comments;

    // [...]
}