在doctrine中的无@Id成员上创建ManyToOne-relation

时间:2011-12-16 10:12:24

标签: doctrine doctrine-orm one-to-many

我有以下来源:

类'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',......?

1 个答案:

答案 0 :(得分:1)

等一下,逻辑上你的ID应该是什么?

如果HistID本身不是唯一的,也许您可​​以使用其他列的复合键来使其唯一。

请注意,虽然完全支持复合键,但不建议在Doctrine中使用复合键。也许你最好只使用一个假的自动增量id ...

无论如何,从未尝试过,但我不相信协会可以在没有指定ID的情况下正常工作