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

Doctrine 条令:2个以不同列作为id的关联,doctrine,key,relationship,Doctrine,Key,Relationship,我知道模特不应该是那样的,但我不得不这么做。 我有3个带列的实体: 类别 id(@id) 类别 名字 产品 id(@id) 类别 所有者 id(@id) 名字 我在category和owner之间做了很多关联(使用联接表)。我使用两列id与联接表联接。(本工程) 现在我想在类别和产品之间建立一个单一的关系。但将它们联系起来的唯一方式是分类 当Category.categoryId不是主键时,它不起作用: 引用的列名“categoryId”必须是目标实体类“Catgeory”

我知道模特不应该是那样的,但我不得不这么做。 我有3个带列的实体:

  • 类别
    • id(@id)
    • 类别
    • 名字
  • 产品
    • id(@id)
    • 类别
  • 所有者
    • id(@id)
    • 名字
我在category和owner之间做了很多关联(使用联接表)。我使用两列id与联接表联接。(本工程)

现在我想在类别和产品之间建立一个单一的关系。但将它们联系起来的唯一方式是分类

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

如果我将Category.categoryId作为主键(因此2个主键带有id),我会遇到多个关系的问题: 多对多表“JOINTABLE”的联接列必须包含源实体“Category”的所有标识符列,但缺少“categoryId”

我该怎么办

关于类别的说明: 对于产品:

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

业主:

@ORM\ManyToMany(targetEntity=“所有者”) @ORM\JoinTable(name=“JoinTable”, ... )


注:我不允许编辑表格

看起来没有解决方案。我有同样的问题,找不到任何解决办法

看。它已关闭,因为它是无效用法