controller方法上调用了好几个service,可以在这个方法上加@Transactional来添加事务功能吗?
1条回答 默认 最新
关注 首先你要知道一点,controller是不建议使用事物的,一般都是在service进行处理
其次使用事物时需要再启动类配置注解,使其生效
最后还有一点,你要明白是异常一旦异常被捕获或者说不抛出异常,这个时候注解是没用的。
接下来还要明白一点,注解打在方法上,改方法所调用的方法也需要有注解支持。最后解决办法如下,可以通过设置手动回滚
@RequestMapping(value = "test", method = {RequestMethod.GET}) @Transactional(rollbackFor = Exception.class) public String test(String id) { try { //省略业务代码…… } catch (Exception e) { log.error("操作异常",e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//contoller中增加事务 return failure("操作失败!"); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探