我正在使用帶數據JPA的Spring Boot。
我有以下代碼。函數Java的不同返回類型
帶有名稱和信息性消息的用戶類別。
class UserResponse{
private String name;
private String message;
}
User JPA Repository which find userBy id;
如果用戶沒有找到class UserService(){
UserResponse user = new UserResponse();
public UserResponse getUserById(String userId){
Optional<User> useroptional = userRepository.findById(userId);
if(userOptional.isPresent()){
user.setName(userOptional.get().getName());
}else{
user.setMessage("User Not Found");
}
}
UserController中它調用回購和設置郵件
interface UserRepository{
Optional<User> findUserById(String id);
}
用戶服務具有以設置適當的HTTP狀態代碼按照該消息。
class UserController(){
public ResponseEntity<UserResponse> getUserById(String id){
UserResponse user = userService.getUserById(id);
HttpStatus status = OK;
if(!StringUtils.isEmpty(user.getMessage())){
status = NOT_FOUND;
}
return new ResponseEntity<>(user,status);
}
}
我所面對的問題是序設置在控制器層適當狀態碼我必須檢查用戶消息,這是我不喜歡。 無論如何,我們可以爲成功和失敗案例創建控制流程。
說一個成功方案的返回類型和流程,反之亦然。 我知道斯卡拉有這個功能要麼關鍵字。 Java中是否有其他替代方法? 或任何其他方法,我可以用來處理這個更好的...
一種方法是返回RepsonseEntity在服務層本身與適當的狀態代碼,但設置狀態代碼是控制器的責任是我的感覺。