Hibernateを使用してエンティティをテーブルに追加しようとしていると仮定します。DAOを追加する前に、エンティティがすでに存在するかどうかを確認し、すでに存在する場合はnullオブジェクトを返すか、追加されたエンティティIDを返します。
@ResponseBody
@RequestMapping(method = RequestMethod.POST)
public T addEntity(@RequestBody State state) {
T response = null;
try {
response = getService().add(state);
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
しかし、nullが返された場合、正しいHTTPエラーコード400を表示したいのですが、nullを返す代わりに、春にそれを行う方法はありますか?ありがとう!
編集:
私はこのようなことを試しました:
@ResponseBody
@RequestMapping(method = RequestMethod.POST)
public T addEntity(@RequestBody String message,
HttpServletResponse httpResponse) throws Exception {
T response = null;
try {
response = getService().add(message);
} catch (Exception e) {
httpResponse.setStatus(409);
e.printStackTrace();
throw new Exception("State already exists, Error 409");
}
return response;
}
ただし、「エラー500状態はすでに存在します、エラー409」として例外が発生します。