带有连接表的Doctrine 2 ManyToOne

时间:2013-03-14 18:22:18

标签: doctrine-orm

我正在寻找关于如何映射使用连接表的OneToMany / ManyToOne关系的建议。我没有采取的映射,我得到一个错误,即没有在媒体表中设置article_id。

class Media
{
    // ...

    /**
     * @ManyToOne(targetEntity="Document", inversedBy="media")
     * @JoinTable(name="articles_x_media", referencedColumnName="id")
     * joinColumns={@JoinColumn(name="media_id", referencedColumnName="id")},
     * inverseJoinColumns={@JoinColumn(name="bid_id", referencedColumnName="id")})
     * )
     */
    protected $document;
}

class Document
{
    // ...

    /**
     * @OneToMany(targetEntity="Media", mappedBy="document"))
     * @JoinTable(name="articles_x_media", referencedColumnName="id")
     * joinColumns={@JoinColumn(name="article_id", referencedColumnName="id")},
     * inverseJoinColumns={@JoinColumn(name="media_id", referencedColumnName="id")}
     * )
     */
    protected $media;
}

1 个答案:

答案 0 :(得分:5)

文档中有关于OneToMany mapping with join table的特定段落。

无论如何,你可能想要的是uni-directional ManyToMany association

此外,@OneToMany并未附带@JoinTable@ManyToOne附近也是如此。