Database 交易和symfony2实体管理器

Database 交易和symfony2实体管理器,database,symfony,doctrine,sqltransaction,Database,Symfony,Doctrine,Sqltransaction,是否有一种方法可以通过实体管理器(条令)在symfony2中手动指定事务,或者是一种自然的方法,在一个事务中完成我下面在两个事务中所做的事情 // creating screen object... //Creating user object... //flush the screen into database in order to get the Id to relate the server (user) to $em->persist($scr

是否有一种方法可以通过实体管理器(条令)在symfony2中手动指定事务,或者是一种自然的方法,在一个事务中完成我下面在两个事务中所做的事情

// creating screen object...
//Creating user object...

        //flush the screen into database in order to get the Id to relate the server (user) to
        $em->persist($screen);
        $em->flush();

        //Get id of just inserted screen and attach that to new server (user)
        $tempRecordId = $screen->getId();
        $tempEntity = $em->getRepository('BizTVContainerManagementBundle:Container')->find($tempRecordId);
        $entity->setScreen($tempEntity);

        //Flush the user also into database
        $em->persist($entity);
        $em->flush();

请看,我必须刷新我的第一个实体以获取其ID,这样我就可以将我的第二个实体与我的第一个实体关联起来……

为什么不执行以下操作:

// creating screen object...
//Creating user object...
    $entity->setScreen($screen);
    $em->persist($screen);
    $em->persist($entity);
    $em->flush();
试试看{
$em->getConnection()->beginTransaction();
//在这里做你的事
$em->getConnection()->commit();
}捕获(\异常$e){
$em->getConnection()->rollback();
扔$e;
}

我不知道这么简单!我想我把事情弄得比需要的更复杂了吧@Elnur,是
$em->getConnection()
,您错过了
()
,谢谢anyway@Kstro21,修正了。谢谢