Symfony2中两个中间实体之间的关系

时间:2014-11-15 00:04:07

标签: php symfony doctrine-orm

我有五个实体: 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...
}

我怎样才能让它发挥作用?

0 个答案:

没有答案