Doctrine复合主键

3
我知道Doctrine 2.0支持复合主键。但我并没有找到我想要的内容。
我有3个表=>代理,客户和客户组。代理创建客户和客户组。客户组具有复合主键=>id, agent_id。agent_id来自代理表。虽然我希望id自动递增,但agent_id来自代理表。我正在尝试编写YAML文件,但我不确定如何在客户组中指定agent_id作为主键。client_group_id和agent_id是client表中的外键。此外,我在Doctrine文档中阅读到,复合PK不能具有自动递增的字段。
所以我想知道我是否真的能做到我想要实现的目标。
仅显示关系的YAML如下: agent:
  oneToMany:
    client_group:
      targetEntity: ClientGroup
      mappedBy: agent
    client:
      targetEntity: Client
      mappedBy: agent

client_group

  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

任何关于此事的帮助将不胜感激。谢谢。
1个回答

9

1
我希望复合主键中的一个字段是自动生成的,但我了解到Doctrine 2.1不支持这种操作。这正是我想要的...这似乎是一件很正常的事情。例如,一个用户有多个电话号码,其中一个部分是user_id,另一个是自动生成的数字ID值。 - Wilt
你需要使用UUID:http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/sharding.html#use-guid-uuids - Bruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接