完整性约束违反Doctrine 2和Symfony

时间:2011-08-24 09:01:13

标签: php doctrine-orm symfony

我正在使用某种文本构建器,您可以在其中添加块来构建文本。构建块在数据库中定义,当您在文本中添加1时,它将保存在会话中(如何构建它们)。

但是现在当我尝试将会话持久化到数据库时,我得到了一个:

Integrity constraint violation: 1062 Duplicate entry 'text' for key 'UNIQ_AA5F49C77153098'

他想添加构建块的现有定义,但它已经定义。会话本身是序列化的。

所以我要保存的步骤是:

1)反序列化( 我也尝试合并它,但这也不起作用。)

2)坚持到数据库=>错误

3 个答案:

答案 0 :(得分:1)

不是直接持久化反序列化的对象,而是: - 反序列化对象 - 从数据库中获取对象 - 使用未序列化的值更新检索到的对象 - 保留检索到的对象

有效吗?

答案 1 :(得分:0)

也许你的模型使用了错误的关联类型。我不记得清楚,但Doctrine为单向多对多或一对一关联添加了单一性约束。

答案 2 :(得分:0)

我遇到了与FOSUserBundle类似的问题:我不知道如何覆盖扩展实体的映射配置(在我的情况下,字段email_canonical,未使用,但是两个空字段也触发了完整性违规)。< / p>

我最终手动删除了数据库中的约束(并使用app / console doctrine:schema:update --dump-sql仅使用SQL命令更新更改 - 除了UNIQUE Con​​straint)

正如futurecat所指出的那样:你需要你的“文本”字段是唯一的吗?