配置Spring JDBC的事务回滚失效
2014-09-16 18:07
337 查看
今天配置Mysql DBCP连接池事务回滚失效,竟然浪费了我一下午的时间去调研,问了好多人也都没发现,最后还得靠自己,总结问题如下:
1、Mysql数据库用的是MyISAM表结构而非InnerDB(浪费了两个小时)
2、网上说的默认情况下,一个有事务方法, 遇到RuntiomeException 时会回滚 . 遇到 受检查的异常 是不会回滚 的. 要想所有异常都回滚,要加上 @Transactional( rollbackFor={Exception.class,其它异常}) 。
3、配置DBCP连接池缺少配置<property name="defaultAutoCommit" value="true" />(不知道C3P0需不需要特殊配置)。
4、@Transactional 只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能.
5、异常不能抓取,抓取了之后就需要重新抛出异常或者增加如下语句:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
每天一点点,帮助别人的同时也在记录自己的成长~
1、Mysql数据库用的是MyISAM表结构而非InnerDB(浪费了两个小时)
2、网上说的默认情况下,一个有事务方法, 遇到RuntiomeException 时会回滚 . 遇到 受检查的异常 是不会回滚 的. 要想所有异常都回滚,要加上 @Transactional( rollbackFor={Exception.class,其它异常}) 。
3、配置DBCP连接池缺少配置<property name="defaultAutoCommit" value="true" />(不知道C3P0需不需要特殊配置)。
4、@Transactional 只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能.
5、异常不能抓取,抓取了之后就需要重新抛出异常或者增加如下语句:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
每天一点点,帮助别人的同时也在记录自己的成长~
相关文章推荐
- 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
- spring 同时配置hibernate and jdbc 事务
- 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】
- spring 通过JDBC事务管理 中切面的配置
- mybatis-spring配置正常事务却无法回滚(建表问题)
- 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
- SPRING配置事务回滚
- Spring配置事务 service 异常捕获回滚问题
- spring(JDBC)事务配置
- spring事务方面解读: 基础配置,及事务回滚操作
- Spring JDBC和Hibernate混用时,如何配置事务管理
- 关于同时用Spring和SpringMVC配置文件,导致事务失效的分析
- spring数据源配置及事务管理--jdbc
- Spring3声明式事务处理事务无法回滚rollback分析(annotation与xml配置混用)
- spring 同时配置hibernate and jdbc 事务
- 使用注解方式配置spring中的jdbc事务
- spring jdbc 事务配置----TransactionTemplate使用
- 【spring 事务注解配置】事务回滚
- Spring配置事务 service 异常捕获回滚问题
- 在spring中使用JDBC事务配置