我有五个实体: ProductA , ProductB ,用户, UserProductA 和 UserProductB 。最后两个是“中间”的,包含 ProductA , ProductB 和用户之间关系的属性。
我想在 UserProductA 和 UserProductB 之间建立一个ManyToOne关系,但它不起作用。当我尝试更新数据库时,出现此错误:实体中的复合主键上不允许使用单个ID。
UserProductA(没有关系):
/**
* @ORM\Entity(repositoryClass="Gam\UserBundle\Entity\UserProductARepository")
*/
class UserProductA
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Gam\FicheBundle\Entity\ProductA")
*/
private $producta;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Gam\UserBundle\Entity\User")
*/
private $user;
/**
* @ORM\Column(type="string", length=1, nullable=true)
*/
private $attribute;
etc...
}
UserProductB(没有关系):
/**
* @ORM\Entity(repositoryClass="Gam\UserBundle\Entity\UserProductBRepository")
*/
class UserProductB
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Gam\FicheBundle\Entity\ProductB")
*/
private $productb;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Gam\UserBundle\Entity\User")
*/
private $user;
/**
* @ORM\Column(type="string", length=1, nullable=true)
*/
private $attribute;
etc...
}
我怎样才能让它发挥作用?