这是一个简单的问题。在Doctrine 2 ORM 2 documentation中,您可以阅读:
使用显式事务划分并发生异常时, 该事务应该立即回滚和 通过调用
EntityManager
和{}关闭了EntityManager#close()
随后丢弃,如上例所示。
我知道我应该关闭EntityManager
,但是上面几行的例子
<?php
// $em instanceof EntityManager
$em->getConnection()->beginTransaction(); // suspend auto-commit
try {
//... do some work
$user = new User;
$user->setName('George');
$em->persist($user);
$em->flush();
$em->getConnection()->commit();
} catch (Exception $e) {
$em->getConnection()->rollBack();
throw $e;
}
我在catch块中看不到$em->close();
。
那么,我应该或不应该使用$em->close();
关闭EntityManager吗?