关于事务的传播行为PROPAGATION_NESTED

关于事务的传播行为PROPAGATION_NESTED


http://img1.sycdn.imooc.com//climg/60a23cce09499c8e08980475.jpg

关于PROPAGATION_NESTED这个事务的解释不是特别理解,老师能否用一个小的例子和通俗易懂的话来说明下?请教老师

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2021-05-17 18:58:41

同学你好,PROPAGATION_NESTED:是开始一个 "嵌套的" 事务,  它是已经存在事务的一个真正的子事务, 嵌套事务开始执行时,  它将取得一个 savepoint。 如果这个嵌套事务失败, 我们将回滚到此 savepoint。嵌套事务是外部事务的一部分, 只有外部事务结束后它才会被提交.。比如:

    ​有一个A方法去调用B方法,如果B方法有事务,我们就再给A套一个事务,如果B没有事务,则我们给A加一个事务。

祝学习愉快!

  • 提问者 浅梦sky #1

    关于这点“   有一个A方法去调用B方法,如果B方法有事务,我们就再给A套一个事务,如果B没有事务,则我们给A加一个事务”还是不理解

    2021-05-18 17:56:39
  • 好帮手慕小尤 回复 提问者 浅梦sky #2

    同学你好,在某个方法中调用另一个方法时,如果另一个方法中存在事务,则为其方法嵌套一个事务,如果没有,则执行与 PROPAGATION_REQUIRED 类似的操作。如:在A方法(存在事务)中去调用B方法,如果B方法中存在事务,此时就会给A方法嵌套一个事务。也就是为A方法中的事务添加一个子事务。

    祝学习愉快!

    2021-05-18 19:00:01
  • 提问者 浅梦sky 回复 好帮手慕小尤 #3

    那么这个给A方法嵌套的这个事务它的传播行为是与A方法相同还是与B方法相同呢?

    2021-05-18 22:00:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师