6

我正在寻找有关如何映射使用连接表的 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;
}
4

1 回答 1

10

OneToMany文档中有一段关于使用连接表进行映射的特定段落。

无论如何,您可能想要的是单向ManyToMany关联

此外,@OneToMany不带有@JoinTable, 并且两者都相同@ManyToOne

于 2013-03-16T02:10:46.147 回答