2
我有以下一段代碼將某些帖子導入到我的數據庫中。它檢查一個帖子是否已經存在。如果不是這樣,它會創建一個新的。使用多個Doctrine實例重複行
此腳本運行在cron作業中。但是,有時它也必須手動運行。可能發生這個腳本的兩個實例同時運行。發生這種情況時,將創建重複記錄。我看不出爲什麼會這樣。
foreach ($posts as $post) {
$entity = new Post();
$entity
->setName($post->name)
->setGender($post->gender())
->setDate(new \DateTime())
;
$em = $this->getContainer()->get('doctrine')->getManager();
$checkEntity = $em->getRepository('SampleBundle:Post')->findOneBy(array(
'name' => $post->name
));
if (!$checkEntity) {
$em = $this->getContainer()->get('doctrine')->getManager();
$em->persist($entity);
$em->flush();
}
}
有人可以在這個問題上點點滴滴嗎?
如果我使用'UniqueConstraintViolationException'我應該讓我的實體的任何調整? – Peter
謝謝你好,答案已更新,添加detach()調用。 –