解决spring 事务管理默认不支持SQLException等运行时异常
2015-11-06 20:15
375 查看
公司同事在定位一个bug时,发现spring默认的事务只支持运行时异常的回滚,对于像SQLException这样的非运行时异常,默认的事务机制不能处理,于是找了下解决的办法:
1、在捕获SQLException的时候,抛出一个RuntimeException及其子类,例如:
try {
xxx
} catch (Exception e) {
throw new ModuleException();
}
这里的ModuleException是公司自己定义继承了RuntimeException的类。
2、在spring中添加捕获特定异常的配置
这里因为RuntimeException是Exception的一个子类,所以直接捕获所有的exception也是可以达到出现SQLException时事务回滚的目的。
1、在捕获SQLException的时候,抛出一个RuntimeException及其子类,例如:
try {
xxx
} catch (Exception e) {
throw new ModuleException();
}
这里的ModuleException是公司自己定义继承了RuntimeException的类。
2、在spring中添加捕获特定异常的配置
这里因为RuntimeException是Exception的一个子类,所以直接捕获所有的exception也是可以达到出现SQLException时事务回滚的目的。
相关文章推荐
- java中leetcode之用Arraylist List实现杨辉三角
- Struts2框架学习<一>流程介绍
- 一个根据URI定位到spring mvc映射代码工具类
- JAVA实现对SQLServer增,删,改,查
- 【leetcode】【35】Search Insert Position
- java 多线程 数据流 内部类(播放音乐)
- Java四类八种数据类型
- Java基础语法(三)---数组
- JavaScrip单选,下拉框,文本框取值赋值--【DRP】
- MyEclipse 自动注释模板
- Java内存泄露原因详解
- SpringMVC避免表单的重复提交解决办法
- Java变量的内存管理
- Java 图像 处理
- Java Eclipse开发环境搭建及注意事项
- java 异常 集合
- 关于Java编程中的一些奇怪的错误(一)——版本冲突
- Java 代码性能优化总结
- Java读取本地文件,然后把数据存到mysql.(以csv文件为例)
- eclipse svn 修改密码