读书人

Spring 事宜

发布时间: 2012-09-08 10:48:07 作者: rapoo

Spring 事务

?

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

?

@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("运行时出错!"); }}}}

读书人网 >行业软件

热点推荐