`

关于AOP事务不回滚的问题

阅读更多
配置了事务,异常抛出为什么不回滚呢?
解决:

A.
先确认数据库类型,看表是否采用InnoDB,mysql只有InnoDB类型表才支持事务.
myiasm 是不支持事务的.

B.
看事务配置的相关dtd
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
发现有个
rollback-for 的配置.
后面找了下.发现默认情况下.
spring对checked Exception(比如Exception,IOException的子类)是不回滚事务的,对应RuntimeException回滚事务.所以这里要注意了.
增加rollback-for配置就ok了
rollback-for 可以配置多个异常以,号分隔.

<!-- 创建一个切面 -->
<tx:advice id="txAdvice" transaction-manager="TtransactionManager">
        <tx:attributes>
        <!-- 只要方法名 -->
        <tx:method name="add*" propagation="REQUIRED"
        isolation="DEFAULT" rollback-for="com.bstek.scm.common.exception.ManagerException,Exception"/>
        <tx:method name="delete*" propagation="REQUIRED"
        isolation="DEFAULT" />
        <tx:method name="update*" propagation="REQUIRED"
        isolation="DEFAULT" />
        <tx:method name="save*" propagation="REQUIRED"
        isolation="DEFAULT" />
        <tx:method name="insert*" propagation="REQUIRED"
        isolation="DEFAULT" />
        <tx:method name="*" propagation="SUPPORTS" read-only="true"
        isolation="DEFAULT" />
        </tx:attributes>
</tx:advice>
0
10
分享到:
评论

相关推荐

    手写简单实现ioc、aop事务demo

    手写简单实现ioc、aop事务demo,实现事务回滚,使用到了,工厂模式,动态代理

    springboot实现多数据源而且加上事务不会使aop切换数据源失效

    用springboot 集成mybatis多数据源,用aop实现的动态切换,支持事务,不会使aop动态切换失效。注意:此代码不涉及分布式事务,如果需要分布式事务 需要采取其他方案。

    带事务回滚测试的SSH整合小案例(Spring 3.2+Hibernate 3.3+Struts 2.3)

    集成了Spring 3.2.2 Hibernate 3.3.2 Struts 2.3.4 用JPA的注解实现orm 不用创建数据库表 只需本机上有oracle即可 用JSR注解进行Spring的...用Spring Test整合Junit4 进行测试并自动事务回滚 不对数据库造成持久化操作

    dynamic-datasource-aop-copy

    springboot结合自定义注解整合动态数据源实现通过注解切换,事务回滚springboot结合自定义注解整合动态数据源实现通过注解切换,事务回滚springboot结合自定义注解整合动态数据源实现通过注解切换,事务回滚

    Spring2.5和Hibernate3集成--学习spring aop ioc

    * 默认事务回滚异常是RuntiimeException(包括所有继承RuntimeException的子类).普通异常不回滚 * 在编写业务逻辑方法时,最好将异常一直往上抛出,由表示层处理(Struts) * spring的事务管理需要添加到业务逻辑上...

    Spring IOC DI AOP 事务)

    目录IOC(控制反转)DI(依赖注入)AOP(面向切面编程)Spring事务事务传播特性脏读,不可重复读,幻读事务隔离级别不喜勿喷 如有雷同请联系本人!! IOC(控制反转) IOC是一种设计思想,而不是什么技术 传统方法...

    spring +springboot+mybatis+maven 读写分离及事务管理

    数据库采用mysql, 采用springboot 采用项目框架搭建,继承spring 中的AbstractRoutingDataSource,实现 determineCurrentLookupKey 进行数据源的动态切换,采用Spring AOP进行数据源设置

    深入理解Spring声明式事务:源码分析与应用实践

    这种代理机制基于Spring AOP实现,能够在运行时动态地管理事务的创建、提交或回滚。此外,Spring事务管理器支持多种类型的事务策略,包括不同的传播行为和隔离级别,允许开发者根据具体业务场景选择最合适的事务管理...

    spring事务的底层实现流程图

    spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务...

    spring培训笔记

    事务中的各个操作不可分割. 要么都成功,要么都失败. Consistency: 一致性. 数据库从一种状态转变为另一种状态, 只有合法的数据才可写入数据库, 数据有任何违例都应该回滚回最初状态. Isolation: 隔离性.事务允许...

    高级开发spring面试题和答案.pdf

    面试高级开发的期间整理的面试题目,记录我面试遇到过的...Spring的事务是如何回滚的,实现原理; 抽象类和接口的区别,什么时候用抽象类什么时候用接口; StringBuilder和StringBuffer的区别 java值传递和引用传递

    Spring.html

    默认-1(永不超时),事务一直不提交也不回滚的时间 是否只读: 默认false TransactionManagerStatus: 事务的一些状态 整合 Spring整合Junit 1.导入依赖spring-test 2.加注解:RunWith、...

    基于RabbitMQ+Redis的分布式事务框架

    使用RabbitMQ和Redis实现的分布式事务框架。主要涉及AOP思想、多线程,使用注解实现事务的提交和回滚。内含基于Spring Cloud的使用案例。

    Spring_doc

    Spring的事务管理通过AOP代理来实现 根据事务属性,对每个代理对象的每个方法进行拦截, 在方法执行前启动事务, 方法执行完毕后根据是否有异常和异常种类进行提交或回滚 spring 默认通过捕获运行时异常实现事务...

    尚硅谷佟刚Spring4代码及PPT.rar

    JdbcDaoSupport、使用 NamedParameterJdbcTemplate、Spring 的声明式事务、事务的属性(传播行为、隔离级别、回滚属性、只读属性、过期时间)、使用 XML 文件的方式配置事务、整合 Hibernate、整合 Struts2 等。

    jquery+bootstrap+SSM+Maven+logback+echarts基于ssm框架实现的教师科研信息管理系统

    # SSM-TeacherWeb ...4、 使用AOP切面编程结合日志框架logback可记录下所有用户在什么时间做了什么操作及其ip地址,生成的日志文件存放在D:\resource\logs下(若不存在D盘会出错),使用AOP实现事务管理...

    shine-mq:Reliable message distributed transaction middleware(可靠消息分布式事务中间件) :sparkles:

    基于可靠的消息服务(使用AOP思想以及与Spring的无缝集成(可通过注释获得))实施分布式事务 分布式事务支持异常回滚 可靠的消息默认存储:redis(自我实现) 当前消息传递中间件支持:rabbitmq :spouting_whale:...

    jersey-interceptor-sample:在 Jersey 中实现事务边界的示例(使用 HK2 拦截器)

    在泽西岛实施交易边界的示例 ... 这是使用内部使用的的 AOP 函数在资源方法中设置事务边界的示例。 启动 Jersey 从gradlew run开始。 是模拟事务start-commit的示例。 是模拟事务启动-回滚的示例。 执照

    Spring 2.0 开发参考手册

    9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1....

    第24次课-1 Spring与Hibernate的整合

    HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交,它会自动完成SessionFactory的注入和事务的注入。 24.3 Spring对Hibernate的简化 24.3.5 HibernateDaoSupport ...

Global site tag (gtag.js) - Google Analytics