【问题标题】:How to commit or rollback transaction in SpringMVC controller method如何在 Spring MVC 控制器方法中提交或回滚事务
【发布时间】:2019-05-07 17:22:06
【问题描述】:

我正在修改一些旧代码,遇到了一个奇怪的问题:

我需要根据我的控制器方法中的服务方法返回结果手动提交或回滚事务。下面是我要存档的代码,可以存档吗?

注意: 我知道最合适的方法是在服务代码中做一些修改,让服务代码决定回滚或提交。但是由于某些原因我不能修改服务代码,我只能修改控制器代码。

@RequestMapping("processData")
public void processData(String id){
    String result = dataService(id);
    if("success".equals(result)){
        //commit transaction
    }else{
       //rollback transaction
    }
   //since there some other codes in controller method,so exception might not be a good choice
   //.....
}

【问题讨论】:

    标签: java spring spring-mvc spring-transactions


    【解决方案1】:

    使用@Transactional(rollbackFor=Exception.class),还有一些属性,可以查看spring文档。

    【讨论】:

    • 使用异常是一种选择,但是如果抛出异常会破坏存在的逻辑
    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    相关资源
    最近更新 更多