当我在Doctrine中使用复合键时,如何生成ID?

时间:2013-07-31 20:32:17

标签: symfony doctrine-orm symfony-2.3

我有一个Entity复合键。见下文:

class BankAccount {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * 
     */
    protected $bank;

    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="CompanyBundle\Entity\Company")
     */
    protected $company;

    ...

}

因为Doctrine在复合键方面存在一些问题,所以它不会生成序列(我在PostgreSQL中工作),我如何处理这个以生成$bank哪个PK?

1 个答案:

答案 0 :(得分:1)

如果您不想要复合键,只需要$bank上的主键和$company上的外键。如果是这样的话,

class BankAccount {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $bank;

    /**
     * @ORM\ManyToOne(targetEntity="CompanyBundle\Entity\Company")
     */
    protected $company;

    ...

}

应该这样做。