2013-07-31 56 views
0

我有一個Entity與複合鍵。請看下圖:如何在Doctrine中使用複合鍵時生成ID?

class BankAccount { 

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

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

    ... 

} 

因爲教義有一些問題,組合鍵不會生成序列(我在PostgreSQL的工作),我如何才能產生$bank這是PK面對呢?

+0

我不確定我是否理解你的問題 - 請澄清。你不能使用'@ORM \ GeneratedValue(strategy =「AUTO」)'作爲主鍵與postgresql,並正在尋找一種方式來生成ID? – nifr

回答

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; 

    ... 

} 

應該這樣做。

相關問題