码迷,mamicode.com
首页 > 数据库 > 详细

配置Spring JDBC的事务回滚失效

时间:2014-09-16 19:00:11      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:spring   jdbc   事务   mysql   dbcp   

今天配置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();


每天一点点,帮助别人的同时也在记录自己的成长~

配置Spring JDBC的事务回滚失效

标签:spring   jdbc   事务   mysql   dbcp   

原文地址:http://blog.csdn.net/u012841509/article/details/39320595

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!