Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringMVC控制器方法中提交或回滚事务_Java_Spring_Spring Mvc_Spring Transactions - Fatal编程技术网

Java 如何在SpringMVC控制器方法中提交或回滚事务

Java 如何在SpringMVC控制器方法中提交或回滚事务,java,spring,spring-mvc,spring-transactions,Java,Spring,Spring Mvc,Spring Transactions,我正在修改一些旧代码,遇到了一个奇怪的问题: 我需要手动提交或回滚基于控制器方法中服务方法返回结果的事务。下面是我想存档的代码。可以吗 注: 我知道最合适的方法是修改服务代码,让服务代码决定回滚或提交。但由于某些原因,我无法修改服务代码,我只能修改控制器代码 @RequestMapping("processData") public void processData(String id){ String result = dataService(id); if("success"

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

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

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

@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
   //.....
}

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

可以选择使用异常,但如果抛出异常,它将破坏现有逻辑