我正在修改一些旧代码并遇到奇怪的问题:
我需要根据控制器方法中服务方法返回的结果手动提交或回退事务。下面是我要存档的代码。可以这样做吗?
注意: 我知道最合适的方法是对服务代码进行一些修改,然后让服务代码确定回滚或提交。但是由于某些原因,我无法修改服务代码,所以只能修改控制器代码。
@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
//.....
}
答案 0 :(得分:1)
使用@Transactional(rollbackFor=Exception.class)
,还有更多属性,您可以检查spring文档。