Symfony Doctrine连接刷新持久化。

4

"问题"

在分析器中:

  • 选择查询
  • 另一个选择查询
  • 第三个查询

现在我在控制器中调用INSERT,所以这个查询被执行。

    $re=new Requests();
    $re->setViewed(false);
    $em->persist($add);
    $em->flush();

它会引起另外"3"个查询:

enter image description here

这样做是否正确?还是我做错了什么?...

1个回答

6
每次调用Doctrine\ORM\EntityManager#flush时,都会在事务中执行。
这意味着如果你当前的关系型数据库支持事务,ORM将自动启动事务,然后执行所有必要的查询,如果一切顺利,则提交COMMIT,如果发生错误,则回滚ROLLBACK
你可以在文档中了解有关Doctrine 2 ORM如何处理事务和并发的更多信息。

好的,所以这很正常和没问题,对吗? - Lukas Lukac
1
@Trki请在公共频道上提问。另外,请勿劫持现有的线程。 - Ocramius
我们如何检查我们的关系型数据库是否支持事务? - parisssss
使用的DBAL平台可以告诉您:https://github.com/doctrine/dbal/blob/7dd848b7afdf065966daebcac3c134f90ba2bcdd/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php#L3084-L3092 - Ocramius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接