Spring 事务回滚机制
2015-12-31 00:00
525 查看
摘要: Spring事物回滚
2.捕获异常,抛出运行时异常,回滚。当一个方法出错,另一个方法必然回滚
3.捕获异常,手动回滚
异常回滚示例
捕获异常,不抛出,事物不能回滚!!!if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); } catch (Exception e) { logger.info("能力开通接口,开户异常,异常信息:"+e); } }
2.捕获异常,抛出运行时异常,回滚。当一个方法出错,另一个方法必然回滚
if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); } catch (Exception e) { logger.info("能力开通接口,开户异常,异常信息:"+e); throw new RuntimeException(); } }
3.捕获异常,手动回滚
if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); } catch (Exception e) { logger.info("能力开通接口,开户异常,异常信息:"+e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } }
异常事务回滚解决方案:
方案1.
例如service层处理事务,那么service中的方法中不做异常捕获,或者在catch语句中最后增加throw new RuntimeException()语句,以便让aop捕获异常再去回滚,并且在service上层(webservice客户端,view层action)要继续捕获这个异常并处理方案2.
在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常相关文章推荐
- Spring AOP+事务控制
- Java多线程实现方式
- java线程状态
- 八皇后问题(经典回溯法)
- java 静态导入 import static
- day05-----------java 语言基础(基础语法)(传智视频)
- JAVA设计模式单例模式(懒汉式和饿汉式)
- java Executors介绍
- 给jdk写注释系列之jdk1.6容器(9)-Strategy设计模式之Comparable&Comparator接口
- java 多线程机制简单总结
- Java集合框架
- 插入排序
- Java枚举类型的小应用
- Spring MVC集成Tiles使用方法
- win10 jdk配置环境变量时的注意事项
- springmvc(1)DispatcherServlet源码简单解析
- Java的接口与内部类
- javamail使用IMAP协议收取gmail邮件
- java 枚举
- java使用jdbc创建新的数据库