1、首先要检查数据的引擎,InnoDB支持事务,MyIsam不支持事务

2、  默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。  
   spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过  
    
配置来捕获特定的异常并回滚  
  换句话说在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();语句,手动回滚,这样上层就无需去处理异常

3、如果不使用try catch的话,如果想其它异常也可以回滚,可以加上rollbackFor =Exception.class

@Transactional(readOnly = false,propagation = Propagation.REQUIRED, rollbackFor =Exception.class )

最新文章

  1. GO基础(二)
  2. PowerDesigner15在win7-64位系统下对MySQL 进行反向工程以及建立物理模型产生SQL语句步骤图文傻瓜式详解
  3. gulp问题
  4. JavaScript 表单验证
  5. Asp.Net MVC4入门指南(10):第三方控件Studio for ASP.NET Wijmo MVC4 工具应用
  6. javascript实现json页面分页
  7. WPF 动画(形状、画刷)
  8. 那些不能错过的Xcode插件
  9. jquery如何判断div是否隐藏--useful
  10. 开源项目Material Calendar View 学习记录 (一)
  11. JSTL 格式化输出 Calendar
  12. Spring Boot 配置文件 – 在坑中实践
  13. 2017多校第9场 HDU 6161 Big binary tree 思维,类似字典树
  14. Java中四大代码块的执行顺序(附code)
  15. BZOJ 4030: [HEOI2015]小L的白日梦
  16. 字符串转xml,特殊字符的问题
  17. tensorboard
  18. SoapUI接口测试-验签值处理-调用java的加密jar包
  19. tomcat JRE_HOME
  20. IOS HTML5页面中数字自动变蓝并识别为手机号

热门文章

  1. Java String类源码
  2. .Net C# Dictionary 和参数字符串互转
  3. python+django学习四
  4. 错误:The following error occurred attempting to run the DNX design time process (dnx-clr-win-x86.1.0.0-rc1-final)
  5. 2.SpringMVC执行流程
  6. mysql启动失败,unit not found
  7. linux基础1_文件类型、拓展名、目录配置
  8. 屏蔽恶意IP
  9. 10_Hive自定义函数UDF
  10. 三种方式构建C#单例模式