【发布时间】:2023-03-03 08:10:24
【问题描述】:
我遇到了麻烦。当我在 Symfony 中执行 persist() 和 flush() 时,我得到了这个:
执行 'INSERT INTO pedido (emissao, 总计,cliente_id) VALUES (?, ?, ?, ?)' with params ["2018-01-10", "100.00", "65c4002a-06e2-442b-b1da-61197f73ba3b"]: SQLSTATE[HY000]: 一般错误: 1364 字段 'id' 没有默认值
我的注解在所有实体中都是一样的,但是在这一个中(具体来说),Doctrine 无法创建自动 id:
/**
* @var \Ramsey\Uuid\Uuid
*
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator")
*/
protected $id;
由于字段 ID 是自动生成的,因此此错误似乎没有任何意义。我还有其他实体,例如 Pessoa,它们可以在相同的注释下正常工作。
如何强制 Doctrine “理解” UUID 索引?
【问题讨论】:
-
此实体中是否还有其他带有 ID 生成器的属性?
-
是的,有一个“codigo”(代码)。但它是一个自动增量生成器 (int),而不是 UUID。
标签: php sql symfony doctrine-orm doctrine