mlfk.net
当前位置:首页 >> Spring事务管理配置文件和注解无法实现回滚 >>

Spring事务管理配置文件和注解无法实现回滚

你的数据库数据是减少了而没有回滚吗?我记得spring的事务管理是在service层的方法上的。不是在类上的。你在service方法accountMoney()上加注解看看。应该是你的注解位置放的不合适。

spring事物配置: Spring的事物是捕获异常来进行事物回滚,有时候我们需要根据业务逻辑来判断是否需要事物回滚。这时候我们就用到手动事物回滚了

一般来说function2和function1用的是同一个Transaction。 这个取决于@Transactional 的 propagation设置(事务的传播性) 默认的是 @Transactional(propagation=propagation.REQUIRED)也就是使用同一个Transaction。也可以按需求设置成 NESTED ...

直接设置下提交规则即可。 使用的是代理类,而不是代理接口 指定目标组件(指定作用范围) 此时如果是多个add、update、delete同时出现在一个流程里面,就会自动进行事务的一致提交或回滚。

你说的没有回滚是不是testTransaction(TestModel testModel)这个方法没有整体提交或回滚。 你现在的代码和spring的事务配置是不配套的。在spring配置中一个事务单元是一个方法。就是说updateData(long id)是一个事务管理

必须是支持食物 必须是字段提交 代码中不能捕捉异常(也就是不要写try catch)

如果你在createXML方法最后catch了异常,并且没有往外抛,那么数据不会滚的。 你可以这样尝试一下把rollback-for属性去掉,并且咋createXML中不做任何异常捕捉, 这样肯定可以回滚。因为 spring默认可以回滚 在抛出运行时和unchecked exceptions...

我理解的是,由于你使用try{}catch(){}将抛出的异常捕获了,所以不会回滚,Spring只有在抛出异常才能回滚,你把异常捕获了,当然不会回滚了

例: 类似这样的方法不会回滚 (一个方法出错,另一个方法不会回滚) : if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); } catch (Exception e) { logger.info("能力开通接口,开户异常,异常信息:"+...

1. spring 配置文件开启注解声明 2. java代码方法上打上标记 @Transactional(rollbackFor={Exception.class, RuntimeException.class}) 方法抛出异常的时候事物回滚

网站首页 | 网站地图
All rights reserved Powered by www.mlfk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com