2011-12-16 44 views
0

我有以下來源:創建一個沒有@Id成員在教義上多對一-關係

類的ParameterWert「

/** 
* @ManyToOne(targetEntity="Parameter", inversedBy="Werte") 
* @JoinColumn(name="Parameter_histid", referencedColumnName="HistID") 
*/ 
protected $Parameter; 

類 '參數'

/** 
* @OneToMany(targetEntity="ParameterWert", mappedBy="Parameter") 
* @var ParameterWert[] 
*/ 
protected $Werte; 

這工作只要因爲HistID標有'@Id':

/** 
* @Id @Column(type="integer") 
* @var integer 
*/ 
protected $HistID; 

但我不想用@Id來標記HistID,因爲我有Antoher ID,並且HistID在沒有其他字段的情況下不是唯一的。如何在非ID成員上創建ManyToOne關係?還有其他的可能性,比如'@ Index1',...?

回答

1

等一下,邏輯上應該是你的ID?

如果HistID本身不是唯一的,也許你可以做一個與其他列的複合鍵,使其獨特。

只要注意,組合鍵在Doctrine中不推薦,儘管它們完全受支持。也許你最好只使用虛擬自動增量ID ...

無論如何,從來沒有嘗試過,但我不相信,協會可以正常工作,沒有指定ID

相關問題