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无用