@Transactional
2016-05-19 12:00
134 查看
Spring事务的传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行时异常(RunTimeException)进行事务回滚。这个意外是unchecked
如果遇到checked异常就不回滚。
如何改变默认规则:
1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class)
2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.class)
3 不需要事务管理的(只查询的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED)
在整个方法运行前就不会开启事务
还可以加上:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true),这样就做成一个只读事务,可以提高效率。
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行时异常(RunTimeException)进行事务回滚。这个意外是unchecked
如果遇到checked异常就不回滚。
如何改变默认规则:
1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class)
2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.class)
3 不需要事务管理的(只查询的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED)
在整个方法运行前就不会开启事务
还可以加上:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true),这样就做成一个只读事务,可以提高效率。
相关文章推荐
- wordpress百度星火计划2.0项目怎么添加标签
- hdu1002 A + B Problem II(高精度加法)
- Tomcat二级域名共享SESSION
- shell中job管理
- Linux 下配置 phpredis 的过程和遇到的问题
- 万能的HashMap
- 知道这20个正则表达式,能让你少写1,000行代码
- Pull方式解析XML文件
- Spark-Spark Streaming例子整理(三)
- Linux下安装Redis
- spark 环境搭建及几种模式测试
- Volley简单总结
- Python接口测试
- Why use @PostConstruct?
- php 字符串函数
- Android学习路线
- angular中的等号(==)判定
- jquery数组删除指定元素的方法:grep()
- 进程间通信方式及比较
- Vim 插件管理