Прокидывай эксепшен, который будет возникать при случае, когда с таким id в бд ничего лежать не будет, прокидывай его в контроллер, там обрабатывай вызов сервиса трай катчем и, если такой эксепшен ловишь, возвращай 404
Вот вообще не надо так делать. Бросай свой кастомный эксепшен из сервиса, типа NotFoundException extends RuntimeException, эксепшен можно пометить
@ResponseStatus 404