我有以下来源:
类'ParameterWert'
/**
* @ManyToOne(targetEntity="Parameter", inversedBy="Werte")
* @JoinColumn(name="Parameter_histid", referencedColumnName="HistID")
*/
protected $Parameter;
class'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',......?
答案 0 :(得分:1)
等一下,逻辑上你的ID应该是什么?
如果HistID本身不是唯一的,也许您可以使用其他列的复合键来使其唯一。
请注意,虽然完全支持复合键,但不建议在Doctrine中使用复合键。也许你最好只使用一个假的自动增量id ...
无论如何,从未尝试过,但我不相信协会可以在没有指定ID的情况下正常工作