Пара вариантов.
Пусть CricketerService
сгенерирует Exception
(вероятно, специфичный для домена CricketerNotFoundException
или что-то подобное) в методе findById
и добавит @ExceptionHandler
для этого.
@ExceptionHandler(CricketerNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
private void handleCricketerNotFoundException(final CricketerNotFoundException cnfEx) {
// Log, do anything else...
}
(Вы также можете добавить @ResponseStatus
к самому классу CricketerNotFoundException
.)
Иметь CricketerService.findById
вернуть null
, если это возможно 'найти его и обработать в этом случае:
public ResponseEntity<Cricketer> updateCricketer(
@PathVariable("id") Long id,
@RequestBody @Valid Cricketer cricketer) {
@Nullable Cricketer cCricketer=cricketerService.findById(id);
if (cricketer == null) {
return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);
}
cCricketer.setId(id);
cCricketer.setCountry(cricketer.getCountry());
cCricketer.setName(cricketer.getName());
cCricketer.setHighestScore(cricketer.getHighestScore());
cricketerRepository.save(cCricketer);
return new ResponseEntity<Cricketer>(cCricketer, HttpStatus.OK);
}