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文档。可以选择使用异常,但如果抛出异常,它将破坏现有逻辑