学说:2 个以不同列作为 id 的关联

问题描述 投票:0回答:1

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

  • 类别
    • id(@id)
    • 类别ID
    • 名字
    • ...
  • 产品
    • id(@id)
    • 类别id
    • ...
  • 业主
    • id(@id)
    • 名字
    • ...

我已经在类别和所有者之间建立了

manyToMany
关联(使用连接表)。我使用两列 id 与连接表连接。 (这有效)

现在我想在

OneToMany
和产品之间建立
Category
关系。但链接它们的唯一方法是
categoryId

Category.categoryId
不是主键时不起作用:

The referenced column name 'categoryId' has to be a primary key column on the target entity class 'Category'.

如果我将

Category.categoryId
作为主键(因此 2 个带有 id 的主键),我会遇到
manyToMany
关系的问题: 多对多表
JOINTABLE
的连接列必须包含源实体
Category
的所有标识符列,但是
categoryId
缺失。

我该怎么办?

类别注释: 对于产品:

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

业主:

@ORM\ManyToMany(targetEntity="Owner")
@ORM\JoinTable(name="JOINTABLE",
   ...

PS:我不可以编辑表格

doctrine key relationship
1个回答
0
投票

这个问题好像没有解决办法。 我有同样的问题,找不到任何解决方法。

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

© www.soinside.com 2019 - 2024. All rights reserved.