检查实体是否已经持久保存到Symfony2中的EntityManager

Vit*_*ius 4 doctrine entitymanager symfony

在Symfony2中,是否可以检查特定实体是否已经持久存在并存在于EntityManager中?

我正在处理一些数据导入,一些记录可能是完全重复的.我正在进行批量插入,即只在持久存在一定数量的实体后才调用flush().所以,我需要检查我试图保持的实体是否已经不在EntityManager中.

pie*_*tro 7

是的,你应该使用unitOfWork http://phpdox.de/demo/Symfony2/classes/Doctrine_ORM_UnitOfWork.xhtml#isEntityScheduled

$uow = $this->getDoctrine()->getManager()->getUnitOfWork()
$exist =  $uow->isEntityScheduled(  $entity );
Run Code Online (Sandbox Code Playgroud)