一次想不到的Spring事务失效问题跟踪(事务不会滚)
周末,鼓捣了下spring事务。spring事务配置其实很简单,这是spring优点。但问题是,不知道其中原理,遇到点问题,就抓瞎了。我就犯傻了一次。
在追踪问题时,搜索到的答案,主要有以下几类。
springmvc 上下文,与service上下文冲突
数据表不支持事务(mysql 中myisam)
异常类型,默认支持RuntimeException,如果是其他异常则需要专门配置
我的问题,上面原因都不是。很遗憾。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
@Transactional (isolation= Isolation.READ_COMMITTED, rollbackFor={Exception. class , RuntimeException. class })
public int saveBlog(Blog blog) {
int blogId= 0 ;
try {
blogId = this .blogDao.save(blog);
Event event = new Event();
event.setEventDate( new Date());
String eventStr= MessageFormat.format( "this is a event from blog {0}" , blogId);
event.setTitle(eventStr);
if (blog.getTitle().contains( "error" )){
throw new Exception( "模拟失败情况,手动触发异常" );
}
this .eventDao.save(event);
} finally {
return blogId;
}
}
|
我为了方便测试结果验证,强制返回ID.使用了finally.
跟踪日志过程中,发现,异常信息不打印,被忽略了。非常奇怪。把finally去掉,就正常打印异常堆栈。
修复方式是很显然把try finally结构去掉。
本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/1923434,如需转载请自行联系原作者
一次想不到的Spring事务失效问题跟踪(事务不会滚)相关推荐
- spring中事务失效的几种情况
下面简单介绍下,spring中常见的事务失效的几种情况.让我们在开发的过程避免这些情况,写出正确而且优雅的代码. 文章目录 数据库引擎不支持,mysql需要InnoDB 方法必须是public的 方法 ...
- wordpress外部调用到html_Spring 自调用事务失效,你是怎么解决的?
前言 相信大家都遇到一种事务失效场景,那就是 Spring 自调用,就是在 Service 方法内,调用另一个加 @Transactional 注解的方法,发现事务失效,这时候你是怎么解决的呢? 公众 ...
- html调用接口_Spring 自调用事务失效,你是怎么解决的?
前言 " 相信大家都遇到一种事务失效场景,那就是 Spring 自调用,就是在 Service 方法内,调用另一个加 @Transactional 注解的方法,发现事务失效,这时候你是怎么解 ...
- springMVC重复扫描bean导致声明式事务失效
文章目录 1 配置文件 1.1 加载spring容器配置 1.2 加载springMvc容器配置 1.3 spring声明式事务配置 2 声明式事务失效 2.1 事务失效的原因 2.2 解决方案 3 ...
- seata1.5.1 分布式事务没有传递xid,xid为null,事务参与者获取不到xid导致事务失效解决方案
环境版本:seata--- 1.5.1 问题:分布式事务没有传递xid导致事务失效解决方案,事务参与者通过RootContext.getXID()没有获取到xid. 解析seata传递原理: 1.在G ...
- Spring 事务失效?看这篇文章就够了!
欢迎关注方志朋的博客,回复"666"获面试宝典 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景? 不知道小伙伴们有没有这样的经历,在自己开心的编 ...
- 聊聊Spring事务失效的12种场景,太坑人了
前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了. 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据.为了保证操作的原子性(要么同时成功,要么同时失败),避免数据 ...
- 【每日提高之声明式事物】spring声明式事务 同一类内方法调用事务失效
2019独角兽企业重金招聘Python工程师标准>>> [问题] Spring的声明式事务,我想就不用多介绍了吧,一句话"自从用了Spring AOP啊,事务管理真轻松啊, ...
- 每日一博 - 常见的Spring事务失效事务不回滚案例集锦
文章目录 事务不生效 方法内部调用 修复方法一 : [新加一个Service方法] 修复方法二:[在该Service类中注入自己] 修复方法三:[通过AopContent类]<---- 推荐 访 ...
最新文章
- Quartz 2D Programming Guide笔记
- Android性能调优篇之探索垃圾回收机制
- cherry-pick,revert和rebase使用的3-way合并策略
- ORA-02082: 回送数据库链接必须具有连接限定词
- 微信收款音响s3服务器断开,微信收款音响s2和s3有什么区别
- 如何在虚拟机中安装kali linux
- 【转】Sql Server 跨服务器连接
- cocos2d-x学习笔记10:动作3:补间动作
- Drools规则引擎使用入门
- 数学分析 隐函数定理及其应用(第18章)
- 如何进行邮件营销,邮件营销群发是否有效?
- Coreseek、Sphinx-for-chinaese、Sphinx+Scws区别
- ipad中的神级笔记软件 Notability的使用方法
- 稠密的无人机激光雷达点云数据处理与分析方法与工具科普系列(一)
- gprmax构造多层均质土壤模型
- Dubbo-05 20190317
- cml sml区别_.CML与SML有何联系和区别?
- 18天精读掌握《费曼物理学讲义卷一》 第13天 2019/6/29
- 华为数通 软开2021实习生 业务主管面 (已通过)
- 推荐几个优质的公众号!