我从现有的数据库中实现了Symfony 2的Web应用程序。学说复合主键外键
我已经设置了一个由两个外键组成的主键的实体。
例如:
ENTITY1与复合主键:property1(PK),property2(PK) ENTITY2主键由两个外键:property1(PK FK),property2(PK FK),propriete3( PK)
我不如何实现这种关联:
在ENTITY2我做的:
/ **
*ORM \ ManyToOne (targetEntity = "Entity1")
*ORM \ JoinColumns ({
*ORM \ JoinColumn (name = "property1" referencedColumnName = "property1")
*ORM \ JoinColumn (name = "property2" referencedColumnName = "property2")
* @ ORM \ Id
*})
*/
private $entity1;
但我得到一个错误:
作为另一个实体'ExempleBundle \ Entity \ Entite2#entite1'的主键的一部分,无法将实体'ExempleBundle \ Entity \ Entite1'映射为复合主键。
如何妥善处理这种关联关系与学说
我试图以此为榜样,但我不明白:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html#use-case-1-dynamic-attributes
你能不能给两个实体的例子有类似的情况下,特别是在在这种情况下如何进行联合。
看来你是错的学说的组合键管理协会。这并不麻烦。 麻烦的是,用于关联的密钥似乎不能同时作为PK的一部分写入错误:'不能将实体'...'映射为复合主键作为主键的一部分另一个实体'...'。 有这种情况的丑陋解决方案: http://stackoverflow.com/questions/19008582/doctrine2-map-entities-with-composite-foreign-keys-in-the-the-composite-primary-keys – zeliboba 2015-04-10 13:09:32
请正确阅读我的答案,我从来没有说过,“学说[不]通过组合键管理关联” 相反,我说的是Doctrine2在某些情况下正确地管理复合主键。 – 2015-04-17 14:03:13
这可能吗? – SayDevNet 2015-04-22 07:32:12