Spring事务不起作用原因

首先声明:

Checked异常继承java.lang.Exception类。Unchecked异常继承自java.lang.RuntimeException类。

而,Spring的事务实现采用基于AOP的拦截器来实现,如果没有在事务配置的时候注明回滚的checked exception,

那么只有在发生了unchecked exception的时候,才会进行事务回滚。

事务不起作用可能原因:

1.上述的异常问题。

2.方言问题。

3.MySQL引擎问题:MyISAM不支持事务。

4.hibernate.current_session_context_class属性问题。

时间: 2024-10-16 01:12:12

Spring事务不起作用原因的相关文章

Spring事务不起作用 问题汇总

Spring事务不起作用 问题汇总 博客分类: spring杂谈 java开发常见问题分析 总有很多朋友询问spring事务不起作用怎么回事,这里我汇总下,欢迎补充: 1.首先使用如下代码 确认你的bean 是代理对象吗? AopUtils.isAopProxy() AopUtils.isCglibProxy() //cglib AopUtils.isJdkDynamicProxy() //jdk动态代理 如果不是 那么就是切入点配置出错了 或者如果你使用了springmvc,可能是contex

[Java][Spring]Spring事务不起作用 问题汇总

[Java][Spring]Spring事务不起作用 问题汇总 http://blog.csdn.net/szwangdf/article/details/41516239

@Transactional事务不起作用原因

想必也有人遇到@Transactional事务不起作用,当时我遇到这个问题也很懵逼,明明别人的代码跟自己的一样,为什么别人的@Transactional事务起作用而自己的事务却没有起作用.如下举例子说明:student1与student2要么全部录入成功,要么全部录入失败,但是我当时遇到的就是student1可以录入成录入功但是student2录入失败(故意把student2信息修改成录入错误的).@Servicepublic class StudentService {@Autowiredpr

Spring 事务不起作用的几种情况

1:必须是runtime异常,方法不要有try  catch语句. 2:service 中 @Service() public class AServiceImpl1 implements AService{ @Transactional(propagation = Propagation.REQUIRED) public void a() { this.b(); } @Transactional(propagation = Propagation.REQUIRES_NEW) public vo

spring事务配置的坑

基于 <tx> 命名空间的声明式事务管理 前面两种声明式事务配置方式奠定了 Spring 声明式事务管理的基石.在此基础上,Spring 2.x 引入了 <tx> 命名空间,结合使用 <aop> 命名空间,带给开发人员配置声明式事务的全新体验,配置变得更加简单和灵活.另外,得益于 <aop> 命名空间的切点表达式支持,声明式事务也变得更加强大. 1.如果没有配置事务,数据库操作是无法成功的. 2. 如果用try catch里的操作是无法用事务管理的? Spr

Spring事务失效的原因

Spring事务失效的原因 5种大的原因 如使用mysql且引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB 假如有兴趣了解 mysql中 " engine=innodb " 以及 " engine=innodb 和engine=myisam的区别 ",可以读读这篇文章:http://blog.sina.com.cn/s/blog_6ac4c6cb01018pb1.html 可使用下述语句之一检查表的标类型: SHOW TAB

spring mvc + mybatis + spring aop声明式事务管理没有作用

在最近的一个项目中,采用springMVC.mybatis,发现一个很恼人的问题:事务管理不起作用!!网上查阅了大量的资料,尝试了各种解决办法,亦未能解决问题! spring版本:3.0.5 mybatis版本:3.2.2 1.applicationContext.xml配置: mvc + mybatis + spring aop声明式事务管理没有作用" title="spring mvc + mybatis + spring aop声明式事务管理没有作用">2.spr

aop声明式事务不起作用的原因

因为在业务层调用了 try{}catch(){} 并且异常没有在catch处抛出来,所以spring aop的事务不起作用 Spring AOP异常捕获原理:        被拦截的方法,须显式的抛出异常,且不能做任何处理,这样AOP才能捕获到方法中的异常,进而进行回滚.        换句话说,就是在Service层的方法中,不需要使用 try...catch  或者在catch中的最后加上 throw new RuntimeException(); 这样程序才会被AOP捕获,进而进行回滚.

2015第24周三Spring事务3

在一个典型的事务处理场景中,有以下几个参与者: Resource Manager(RM) ResourceManager简称RM,它负责存储并管理系统数据资源的状态,比如数据库服务器,JMS消息服务器等都是相应的Resource Manager. Transaction Processing Monitor(TP Monitor) Transaction Processing Monitor简称TPM或者TP Monitor,它的职责是在分布式事务场景中协调包含多个RM的事务处理.TP Moni