создать ManyToOne-отношение на элементе @Id в доктрине - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть следующий источник:

class '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;

Но я не хочу помечать HistID @Id, потому что у меня есть antoher ID, и HistID не уникален без некоторых других полей.Как создать отношение ManyToOne для не-ID-члена?Есть ли другие возможности, например, '@ Index1', ...?

1 Ответ

1 голос
/ 22 декабря 2011

Подождите секунду, каким логически должен быть ваш ID?

Если HistID не уникален сам по себе, возможно, вы можете создать составной ключ с другим столбцом, чтобы сделать его уникальным.

Следует отметить, что составные ключи не рекомендуются в Doctrine, хотя они полностью поддерживаются. Может быть, вам лучше просто использовать фиктивный автоинкрементный идентификатор ...

Во всяком случае, никогда не пробовал, но я не верю, что ассоциации могут работать должным образом без указания идентификатора

...