博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring事务异常回滚,捕获异常不抛出就不会回滚
阅读量:6697 次
发布时间:2019-06-25

本文共 439 字,大约阅读时间需要 1 分钟。

hot3.png

配置来捕获特定的异常并回滚  
  换句话说在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),这样程序异常时才能被aop捕获进而回滚
  解决方案: 
  方案1.例如service层处理事务,那么service中的方法中不做异常捕获,或者在catch语句中最后增加throw new RuntimeException()语句,以便让aop捕获异常再去回滚,并且在service上层(webservice客户端,view层action)要继续捕获这个异常并处理
  方案2.在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法)

转载于:https://my.oschina.net/u/1380237/blog/831486

你可能感兴趣的文章
简单的for()循环使用方式foreach
查看>>
推荐12款非常有用的流行 jQuery 插件
查看>>
【C++】考虑virtual函数以外的其他选择
查看>>
Batch批处理
查看>>
线程与进程
查看>>
SQL Cookbook—数字、日期
查看>>
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
查看>>
jquery ui autocomplete输入中文不自动完成的问题
查看>>
二手房买卖砍价最新攻略 帮你花少钱买好房
查看>>
推荐一款移动端的web UI控件 -- mobiscroll
查看>>
HDUOJ---1879 继续畅通工程
查看>>
GDB十分钟教程
查看>>
搭建nginx流媒体服务器(支持HLS)
查看>>
将DataTable 数据插入 SQL SERVER 数据库
查看>>
Android -- 在xml文件中定义drawable数组
查看>>
启发式搜索A*算法
查看>>
CLR VIA
查看>>
C#中的interface
查看>>
iOS UI-AlertView(警示框)和ActionSheet(选择框、操作表单)
查看>>
2016-01-17
查看>>