Spring的事物传播行为
来源:互联网 发布:手机淘宝怎么实名 编辑:程序博客网 时间:2024/05/18 03:37
以下讨论基于A.methoda()调用B.methodb();
若B的事务隔离级别为:
PROPAGATION_REQUIRED:(外面影响里面,里面不影响外面)
若A的方法没有事务,则创建一个新事务,若有事务,则加入当前事务。
如果A的方法a抛出异常,则A,B的方法都会回滚,
如果B的方法b抛出异常,则看A有没有捕获,没有捕获的话,A会回滚,捕获了的话,则会抛出新的异常,不会回滚
PROPAGATION_REQUIRES_NEW:(外面不影响里面,里面(不)影响外面)
若A的方法没有事务,则新建一个事务,若有事务,就创建一个新事务。
若A的方法有事务,
如果A的方法a抛出异常,则A的事务回滚,B的事务不受影响
如果B的方法b抛出异常,则B回滚,A不捕获则回滚,捕获则不受影响
PROPAGATION_NESTED :(外面的影响里面的,里面的(不)影响外面的)
若A的方法没有事务,则新建一个事务,若有事务,则在里面嵌套一个事务。
若A的方法没有事务,
如果B的方法b抛出异常,则B回滚,A不回滚;
如果A的方法a抛出异常,则都不回滚
若A的方法有事务:
如果B的方法抛出异常,则B回滚
如果A的方法不捕获异常,则回滚,捕获则不回滚
如果A的方法抛出异常,则都回滚
PROPAGATION_SUPPORTS:(外面的影响里面的,里面的影响外面的)
如果A没有事务,则B以非事务的方式运行,如果A有事务,则使用当前事务;
如果A没有事务,则A和B的运行出现异常都不会回滚
如果A有事务,
A的方法a抛出异常,A和B都会回滚。
B的方法b抛出异常,A和B都会回滚。
PROPAGATION_NOT_SUPPORTED:
如果A没有事务,就以非事务方式执行,如果有,就将当前事务挂起。
PROPAGATION_NEVER:
如果A没有事务,就以非事务方式执行,如果有,就抛出异常。
PROPAGATION_MANDATORY:(外面的影响里面的,里面的影响外面的)
如果A没有事务,就抛出异常,如果A有事务,就使用当前事务。
如果A有事务
如果A的方法抛出异常,则A和B都会回滚
如果B的方法抛出异常,则A和B也都会回滚
参考文章:http://blog.csdn.net/pml18710973036/article/details/58607148
- Spring的事物传播行为
- spring事物的7个传播行为
- Sring事物的传播行为
- spring事物的传播行为和隔离级别
- spring事物的传播
- Spring的事物有几种方式?谈谈spring事物的隔离级别和传播行为?
- spring 事物隔离级别和传播行为
- 关于spring事物的隔离级别和事物的传播行为
- spring事物的七种事物传播属性行为及五种隔离级别
- Spring的传播行为
- 事物的特性,隔离级别、传播行为
- Spring 事物的传播特性
- spring事物的7大传播行为和四大隔离级别
- Spring propagation (Spring 事物的传播)
- Spring事务的传播行为
- Spring事务的传播行为
- Spring事务的传播行为
- Spring事务的传播行为
- 一定范围内的素数个数
- Java打怪小游戏
- 【p3745】[六省联考2017]期末考试
- 使用 qemu 搭建内核开发环境
- Android 布局属性值
- Spring的事物传播行为
- JavaScript 面向对象(三)对象的方法及函数的上下文
- 堆 heap
- bzoj4012开店 动态点分治
- linux中IO复用(select,poll,epoll)
- 嵌套循环-九九乘法表-菱形打印
- Spring(一)Spring框架基础概念
- Linux学习(八):shell脚本编程
- 数学之对偶问题