首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Spring 事务不回滚的解决方法

2012-09-12 
Spring 事务不回滚的解决办法Spring 事务不回滚的问题关键是:不能对该异常用try...catch处理,否则不会回滚

Spring 事务不回滚的解决办法

Spring 事务不回滚的问题关键是:不能对该异常用try...catch处理,否则不会回滚事务!

?

还有几种可能:

    表不支持支持事务,mysql下必须为InnoDBmysql为绿色版的缘故,改装正式版试试待补充。。

?

@Service("systemConfigService")public class SystemConfigServiceImpl extends AbstractGenericService<SystemConfig> implements SystemConfigService {@Resource(name="systemConfigDAO")private SystemConfigDAO systemConfigDAO;@Overridepublic void deleteByIds(String id) {if(id != null){String[] ids = id.split(",");try {SystemConfig systemConfig = systemConfigDAO.get(2);systemConfig.setValue("测试值");systemConfigDAO.update(systemConfig);// 执行如下操作,数据库将报唯一索引重复问题// Caused by: java.sql.BatchUpdateException: Duplicate entry 'PORTAL.CITYCODE' for key 'name'SystemConfig systemConfig2 = systemConfigDAO.get(2);systemConfig2.setName("PORTAL.CITYCODE");systemConfigDAO.update(systemConfig2);} catch (Exception e) {log.error(e);// 如果注释掉throw new RuntimeException,那么事务将不能回滚,因为spring捕捉不到Exception// 解决办法,去掉try catch,或者在cache中抛出异常以便spring捕获throw new RuntimeException("运行时出错!"); }}}}
1 楼 lyht617214 2012-05-16   总结得很详细,今天一不小心用try...catch处理,导致事物不回滚,是这篇文章提醒了我,thanks!

热点排行