douzhaocheng4533
2014-03-17 18:22
浏览 31
已采纳

Symfony2 Doctrine,flush entityManager跳过uniques

i have this method:

while ($line = fgets($fh)) {
    $word = new Word();
    $word->setWord(trim($line));
    $word->setCreatedAt(new \DateTime());
    $word->setPriority(1);
    $em->persist($word);
}
$em->flush();

Now, the field word contains a unique constraint, so i get an exception if the last $em->flush(); stumbles on to a duplicate entry. I could simply put flush inside the loop, but that makes it slow as hell. I could also do a query inside the loop to check if the word already exists, but that would also slow it down substantially.

Is there any other way to make doctrine skip the unique clashes and continue inserting the rest on flush?

If i put it in to a try, catch it catches the exception, but it doesnt insert any rows.

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题