Doctrine 2 ORM 事务处理

本文介绍了在Doctrine 2 ORM中处理事务的两种方法:隐式和显式,并强调了正确进行事务划界对应用性能的重要性。隐式方法通过ORM自动管理事务,而显式方法则通过API直接控制。在遇到异常时,无论是隐式还是显式,事务都会被适当地回滚。最后,文章提到了事务处理后对象的状态和管理。
摘要由CSDN通过智能技术生成

转载自我的blog

事务划界

“事务划界”就是定义你的事务边界的。正确地进行事务划界非常重要,如果做的不好就会影响你的应用性能。许多数据库以及数据库抽象层(比如PDO)默认工作在自动提交(auto-commit)模式下,该模式下每条SQL语句都被包裹在一个单独的小事务中。所以如果你没有主动进行事务控制,很快就会造成应用的性能下降,因为事务的开销可不便宜哦。

在绝大多数情况下,Doctrine 2都为你做了合理的事务划界:所有的写操作(INSERT/UPDATE/DELETE)都被放到队列中,直到 EntityManager#flush()被调用,这些操作都被囊括在一个事务中。

而且,Doctrine 2也支持(且鼓励)你自己来接管并控制事务划界。

这里有使用Doctrine ORM处理事务的两种方法,接下来将详细讲述。

方法1:隐式

第一种方法就是使用Doctrine ORM默认提供的事务处理机制。下面的代码片段,就没有任何显示的事务划界:

<?php
// $me instanceof EntityManager
$user = new User;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值