在 Spring 框架手册中,他们声明对于 PROPAGATION_REQUIRES_NEW,当前事务将被挂起。
“暂停交易”是什么意思?
超时计时器停止对当前事务计数?
这种暂停的实际影响是什么?
谢谢你,
Asaf
这并不意味着什么特别的,暂停的交易只是一个交易暂时未使用对于插入、更新、提交或回滚,因为由于指定的传播属性,应该创建一个新事务,并且同时只能有一个事务处于活动状态。
基本上有两种交易模型:嵌套且扁平模型。在嵌套模型中,如果您启动一个事务,并且需要另一个事务,则第一个事务保持活动状态,也就是说,第二个事务将嵌套在其父事务中,依此类推。另一方面,在扁平化模型中,第一个交易将被暂停,也就是说,在新的交易完成之前我们不会使用它。
AFAIK 几乎只使用平面模型(也包括 Spring 和 EJB 规范),因为它更容易实施:在任何给定时间都只有一个活动事务,因此很容易决定在发生回滚(例如由于异常)时要做什么。更重要的是,如果需要嵌套模型,底层数据库必须支持它,所以平面模型只是公分母在这种情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)