多对多映射问题

时间:2011-03-23 03:48:51

标签: php doctrine annotations

我目前正在尝试使用Doctrine2的POPO Annotations来映射音乐相关数据。

我没有遇到任何其他多对多关系的问题,但是一个特定的关系给了我麻烦。它不会抛出错误,但映射不会插入到映射表(artist_album

艺术家

<?php
/**
 * @orm:Entity
 * @orm:Table(name="artist")
 */
class Artist
{

    ...

     /**
     * @orm:ManyToMany(targetEntity="Company\MusicBundle\Entity\Album", inversedBy="artists", cascade={"persist"})
     * @orm:JoinTable(name="artist_album",
     *      joinColumns={@orm:JoinColumn(name="artist_id", referencedColumnName="id")},
     *      inverseJoinColumns={@orm:JoinColumn(name="album_id", referencedColumnName="id")})
     *      
     * @var ArrayCollection
     */
    private $albums;

    ...

}

相册     

    ....

    /**
     * @orm:ManyToMany(targetEntity="Company\MusicBundle\Entity\Artist", mappedBy="albums", cascade={"persist"})
     * 
     * @var ArrayCollection
     */
    private $artists;

    ...

}

我确定这只是我在映射中做错的事情,但我不能把我的谚语放在它上面。

1 个答案:

答案 0 :(得分:0)

我的问题是我把艺术家置于关系的反面。看来你必须在拥有方(在这种情况下,艺术家)设置关系。