映射超类的一对多关系的反面 - Doctrine ORM

时间:2015-07-04 11:00:16

标签: inheritance doctrine-orm one-to-many

我正在尝试更新我的数据库架构,但我收到以下错误:

  [Doctrine\ORM\Mapping\MappingException]                                                                                                        
  It is illegal to put an inverse side one-to-many or many-to-many association on mapped superclass 'AppBundle\Entity\ListContent#attachments'.

我有以下实体层次结构:

Content实体是单表继承的具体类,我存储了所有内容,例如。 PageBlog

Content实体中,我one-to-many实体与Attachment实体的关系如此:

/**
 * @var ArrayCollection|Attachment
 *
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\Attachment", mappedBy="content")
 */
protected $attachments;

当然还有Attachment实体我有:

/**
 * @var Content
 *
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Content", inversedBy="attachments")
 */
private $content;

一些STI实体扩展了Content个实体,但其中一些实体扩展了抽象ListContent,它被定义为mapped superclass并且还有一些额外的字段。

我希望能够从扩展attachments的实体以及扩展Content的实体访问ListContent,以便我将one-to-may关联放到ContentListContent扩展它以来{1}}实体。

我一直在寻找解决方案,但我只能找到这个Doctrine2: OneToMany on mapped superclass,因为我不想在我的ListContent上定义关系,所以我不适合。

有没有人遇到过这个问题?你是怎么解决的?

0 个答案:

没有答案