Вместо этого вы можете попробовать this . Это deleteById
метод для CrudRepository
(надеюсь, вы его используете), и он выдает IllegalArgumentException
, если не может найти клиента.
Я предположил, что с "ошибкой" вы имели в виду " исключение ", а затем в контроллере вы можете окружить блок try-catch следующим образом:
try{
customerService.deleteCustomer(id);
} catch (IllegalArgumentException e) {
log.error("No customer id exists!", e);
// if you have no logger, then use System.out.println() at least
}
Если вы хотите вместо этого вернуть ошибку вызывающей стороне, измените тип данных с void на HttpResponse<String>
и при обнаружении исключения вы можете return HttpResponse<>("No customer exists with that id!", HTTP.BAD_REQUEST)
. Теперь вызывающая сторона получит запрос с ошибкой 400.
Более хороший подход - перехватить исключение в самой службе и вернуть логическое значение контроллеру (true
, если клиент удален, и false
, если не удалось удалить / не смог найти).