【发布时间】:2016-03-21 14:49:53
【问题描述】:
我有一个 Spring MVC 服务方法来执行 save() 和 update() - 两个操作。
save()执行成功后,如果发现要更新的用户不存在,我会手动抛出一个新的RuntimeExceotion()来回滚保存操作。在这种情况下,如何将错误消息(“找不到用户”)返回到浏览器端?
@Transactional(rollbackFor = { Exception.class })
public Map<String,Object> service(){
Map<String,Object> map = new HashMap<String,Object>();
//1. save user
User user = getUser();
this.save(user);
//2. try to update another
String anotherUserId = "anUserId";
User anUser = this.getById(anotherUserId);
if(anUser != null){
anUser.setName("newName");
this.update(anUser);
map.put("status",true);
}else{
//logical error
map.put("status",false);
map.put("err_msg","cant find the user for update");
//triger rollback(rollback save user)
throw new RuntimeException("update user error");
}
return map;
}
【问题讨论】:
标签: spring-mvc spring-transactions