当我有PDOException时,重置条令实体管理器的最佳方法是什么?
在foreach循环中,我需要保存我得到的最大实体。如果一个实体失败,我想发送一封电子邮件并继续运行foreach循环。
例子:
private $entityManager;
public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}
public function testMethod(array $entities)
{
foreach ($entities as $entity)
{
try
{
$entity = new MyEntity();
$entity->setSomeData();
$this->entityManager->persist($entity);
$this->entityManager->flush();
} catch (\Exception $e)
{
//SEND EMAIL
}
}
}
有一段时间,我收到消息“EntityManager已关闭”,由pdoException抛出。
重置实体管理器以继续循环的最佳方法是什么?
注意:这是一个示例代码。我不会为每个错误发送电子邮件或刷新。