2
我在value
字段上有uniqueConstraints
的測試實體。在Doctrine2中使用一次flush()插入之前執行UPDATE
我要添加一些新的測試實體,並更新現有的一些測試實體與一個flush()
,如:
$new = new Test;
$new->setValue('existing value');
$old = $em->getRepository('TestBundle:Test')->findOneByValue('existing value');
$old->setValue('new value);
$em->flush();
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'existing value'
這是因爲舊的實體未插入新的實體之前更新。
是否可以使用ONE flush()?
請問你是怎麼處理這個問題的?我有同樣的問題,迄今爲止唯一的解決方案是想禁用UQ常量,並確保在驗證級別上實體是唯一的。 –