Doctrine:2个不同列的关联作为id

时间:2015-05-29 13:47:38

标签: doctrine key relationship

我知道这个模型应该是这样但我必须这样做。 我有3个带列的实体:

  • 类别
    • id(@id)
    • 的categoryId
    • 名称
    • ...
  • 产物
    • id(@id)
    • 类别ID
    • ...
  • 所有者
    • id(@id)
    • 名称
    • ...

我在类别和所有者之间做了很多关联(使用连接表)。我使用两列id连接到连接表。 (这有效)

现在我想在类别和产品之间建立OneToMany关系。但链接它们的重要方法是categoryId。

当Category.categoryId不是主键时,它不起作用: 引用的列名称' categoryId'必须是目标实体类' Catgeory'。

的主键列

如果我把Category.categoryId作为主键(所以2个主键带有id),我就会遇到很多关系问题: 多对多表格的连接列' JOINTABLE'必须包含源实体的所有标识符列'类别'但是' categoryId'不见了。

我该怎么办?

类别注释: 对于产品:

@ORM \ OneToMany(targetEntity =" Product",mappedBy =" category")

对于所有者:

@ORM \多对多(targetEntity ="所有者&#34) @ORM \ JoinTable(名称=" JOINTABLE&#34 ;,    ... )

PS:我不允许编辑表格

1 个答案:

答案 0 :(得分:0)

看起来这个没有解决方案。我有同样的问题,无法找到解决方法。

http://www.doctrine-project.org/jira/browse/DDC-1114。它被关闭,因为它是无效的用法。