spring 事务的传播特性
1.声明式事物中,一个类serviceA的方法test1()调用另一个类serviceB的方法test2() 要是serviceB的test2()事务配置在xml文件中为REQUIRED,又在此方法上加入@Transactional(propagation = Propagation.NOT_SUPPORTED)则serviceB.test2()的以xml中为主,NOT_SUPPORTED就不起作用了。如果方法没在xml上配置REQUIRED,则会起作用。
如果是在同一类中调用另一方法test2上加 Propagation.NOT_SUPPORTED ,则test2()的PROPAGATION_NOT_SUPPORTED失效 2.如果一个类中一个方法test1()调用此类的另一方法test2(),都是required,要是test2抛异常的话,若test1不catch,则都会回滚,或test1方法catch了异常,则两个方法都会提交
3.如果一个类中一个方法test1()调用另一个类的方法test2(),都是required,要是test2抛异常的话,若test1不catch,则都会回滚,或test1方法catch了异常,则仍然回滚 注意:其中test1不能是在声明事务中包括的方法 如果包括在里面则以声明中的为主
4.如果声明式事务切面配置方法名为*的事务 为SUPPORTS,一个类test1默认调另一个类test2 REQUIRED,若test2出异常,则两个方法都回滚 感觉test1方法默认为SUPPORTS时 另一个类test2为REQUIRED、REQUIRES_NEW时都自动变为REQUIRED了
5.如果声明式事务切面配置方法名为*的事务 为NOT_SUPPORTED,一个类test1默认调另一个类test2 REQUIRED,若test2出异常,则test2回滚,test1提交
6.如果声明式事务切面配置方法名为*的事务 为SUPPORTS,一个类test1默认调另一个类test2 REQUIRED,在test1方法前加入@Transactional(propagation = Propagation.SUPPORTS) 若test2出异常,则test2回滚,test1提交
转:http://8917152.blog.51cto.com/8907152/1544254
http://www.cnblogs.com/tianyuchen/p/6678084.html Spring事务回滚和异常类
http://blog.csdn.net/lfsf802/article/details/9417095
spring 事务的传播特性的更多相关文章
- Spring事务的传播特性和隔离级别
事务的几种传播特性1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务.如果没有事务则开启2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务 ...
- 关于事务,事务的特性,spring事务的传播特性
1.什么是事务: 事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败). 2.事务特性: 事务特性分为四个:原子性(At ...
- spring事务的传播特性
所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播.Spring 支持 7 种事务传播行为: PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在 ...
- Spring事务的传播行为 @Transactional(转)
Spring事务的传播行为 在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例 ...
- Spring事务的传播行为 @Transactional
Spring事务的传播行为http://blog.csdn.net/cuker919/article/details/5957209 在service类前加上@Transactional,声明这个se ...
- 什么是事务?事务的四个特性(ACID)?并发事务带来哪些问题?事务隔离级别都有哪些?事务的传播特性
什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事物的四个 ...
- 数据库的特性与隔离级别和spring事务的传播机制和隔离级别
首先数据库的特性就是 ACID: Atomicity 原子性:所有事务是一个整体,要么全部成功,要么失败 Consistency 一致性:在事务开始和结束前,要保持一致性状态 Isolation 隔离 ...
- spring事务的传播性
<!--配置事务传播特性 --><tx:advice id = "txAdvice" transaction-manager = "txManage&q ...
- Spring事务的传播行为分析
前言 最近项目有涉及到Spring事务,所以工作之余,想认真了解学习下Spring事务,查阅了若干资料,做了一个demo(PS:参考了大牛的). 现分享总结如下: 1.Spring 事务的简介 理解事 ...
随机推荐
- ios UIScrolloView在storyboard中添加约束
1.在storyboard中如果有UINavigationbar 或 UITabar 布局的时候需要在控制器中勾选掉 Under Top Bars 和 Under Bottom Bars 这两个选项. ...
- InertialNav
https://github.com/priseborough/InertialNav Instructions To Run Simulink Model Note : Simulink model ...
- 10.17JS日记
1.变量提升 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域,叫window, window分为两个模块,一个叫做内存模块,一个叫做运行模块,内存模块找到当前作用域下的 ...
- 求助Ubuntu16.10如何设置默认启动为字符界面
字符界面:sudo systemctl set-default multi-user.target图形界面:sudo systemctl set-default graphical.target
- Linux驱动之按键驱动编写(查询方式)
在Linux驱动之LED驱动编写已经详细介绍了一个驱动的编写过程,接着来写一个按键驱动程序,主要是在file_operations结构中添加了一个read函数.还是分以下几步说明 1.查看原理图,确定 ...
- gdal gdal2tiles.py 的使用
I’m here showing how you can use GDAL2Tiles to generate map tiles of Tom Patterson’s Natural Earth I ...
- linux强制拷贝避免输入yes方法
Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供两种Linux下cp 覆盖方法. 1) 取消cp的alias,这不 ...
- 12. pt-index-usage
pt-index-usage h=192.168.100.101,P=3306,u=admin,p=admin /data/mysql3306/data/slow.log 根据slow log来判断i ...
- Jackson高并发情况下,产生阻塞
情况:在高并发情况下,查看线程栈信息,有大量的线程BLOCKED. 从线程栈得知,线程栈中出现了阻塞,锁在了com.fasterxml.jackson.databind.ser.SerializerC ...
- 状态机学习(三)解析JSON1
来自 从零开始的 JSON 库教程 从零开始教授如何写一个符合标准的 C 语言 JSON 库 作者 Milo Yip https://zhuanlan.zhihu.com/json-tutorial ...