我知道模型不应该是这样的,但我必须这样做。 我有 3 个带有列的实体:
我已经在类别和所有者之间建立了
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:我不可以编辑表格
这个问题好像没有解决办法。 我有同样的问题,找不到任何解决方法。
请参阅 http://www.doctrine-project.org/jira/browse/DDC-1114。 它已被关闭,因为它是无效的使用。