我正在寻找关于如何映射使用连接表的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;
}
答案 0 :(得分:5)
文档中有关于OneToMany
mapping with join table的特定段落。
无论如何,你可能想要的是uni-directional ManyToMany
association。
此外,@OneToMany
并未附带@JoinTable
,@ManyToOne
附近也是如此。