自定义关联/加入主义

时间:2016-03-28 18:46:45

标签: php symfony doctrine-orm

我们说你有

 class EntityA {
      private $id;
      privated $sharedUniqueId;
 }

 class EntityB {
      private $id;
      private $sharedUniqueId;
 }

 //EntityA is in an OneToMany Relation with EntityB

如何在没有学说的情况下使EntityB上的entityA_id$sharedUniqueId属性创建OneToMany关联。我一直在查看文档,但我仍然无法找到这个特定的案例。请注意,我不想创建由{id,sharedUniqueId}

组成的主键

有关详细信息,上下文是通过INSERT INTO ... SELECT ... ON DUPLICATE KEY创建表,并且表的引用是通过此自定义ID完成的,我知道如果我重新更新原始数据则不会更改改变ids。

修改

为什么我会投票?

这是同样的问题。 Is it possible to reference a column other than 'id' for a JoinColumn?

1 个答案:

答案 0 :(得分:1)

对于有一天会有这个问题的合法人士。 这在他们的文档中描述是一个已知的限制

http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/limitations-and-known-issues.html

  

无法使用指向非主键的连接列。 Doctrine会认为这些是主键并使用数据创建延迟加载代理,这可能会导致意外结果。出于性能原因,Doctrine可以在运行时不验证此设置的正确性,而只能通过Validate Schema命令验证。