Doctrine orm 复合主键

Doctrine orm 复合主键,doctrine-orm,composite-key,composite-primary-key,Doctrine Orm,Composite Key,Composite Primary Key,我知道Doctrine 2.0支持复合密钥。但我不太可能找到我要找的东西 我有3个表=>代理、客户和客户组。 代理创建客户端和客户端组。客户端组有一个复合主键=>id,agent\u id。agent\u id来自agent表。虽然我希望id自动递增,但代理id来自代理表。 我正在尝试编写yaml文件,但不确定如何将此代理id指定为客户端组中的主键。客户端组id和代理id是客户端表中的外键。另外,我确实读过条令文档,复合PK不能有自动递增的字段 所以,如果我真的能做到我在这里的目标,我会很高兴

我知道Doctrine 2.0支持复合密钥。但我不太可能找到我要找的东西

我有3个表=>代理、客户和客户组。
代理创建客户端和客户端组。客户端组有一个复合主键=>id,agent\u id。agent\u id来自agent表。虽然我希望id自动递增,但代理id来自代理表。
我正在尝试编写yaml文件,但不确定如何将此代理id指定为客户端组中的主键。客户端组id和代理id是客户端表中的外键。另外,我确实读过条令文档,复合PK不能有自动递增的字段

所以,如果我真的能做到我在这里的目标,我会很高兴

仅显示关系的yaml如下所示:

代理:

客户群

客户端


在此方面的任何帮助都将不胜感激。谢谢。

它就在文档中。我的问题的答案是使用associationKey


如果您转到上面链接上的动态属性,解决方案就在那里。然而,限制是,我希望自动生成复合主键的一个字段,据我所知,该字段不受条令2.1的支持。

“我希望自动生成复合主键的一个字段,据我所知,该字段不受条令2.1的支持”,这正是我所希望的。。。这似乎是一件正常的事情。例如,用户有电话号码,键的一部分是用户id,另一部分是自动生成的数字id值。您必须使用UUID我猜:
  oneToMany:
    client_group:
      targetEntity: ClientGroup
      mappedBy: agent
    client:
      targetEntity: Client
      mappedBy: agent
  manyToOne:
    agent_id:
      targetEntity: Agent
      inversedBy: client_group
      joinColumn:
        name: agent_id
        referencedColumnName: id

  oneToMany:
    client:
      targetEntity: Client
      mappedBy: client_group
  manyToOne:
    client:
      targetEntity: ClientGroup
      inversedBy: client
      joinColumn:
        name: client_group_id
        referencedColumnName: id
    agent:
      targetEntity: Agent
      inversedBy: agents
      joinColumn:
        name: agent_id
        referencedColumnName: id