save()とupdate() - 2つの操作を実行するSpring MVCサービスメソッドがあります。カスタムメッセージでのSpring MVCロールバック
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;
}
本当に感謝しています!それは完璧に動作します、私はSpringTransactionalへの例外を投げた後に何かをすることについて考えませんでした。 –