R z CRUD, kiedy obsługiwać Optional

0

Hej
Mam takie repository


@Repository
public interface LeagueRepository extends CrudRepository<LeagueEntity,Long>{

    Optional<LeagueEntity> findOne(long id);

}

Później w servisie jest zamieniana na Optionala DTO i ten optional idzie do endpointa (po drodze przez warstwę aplikacji, czyli takiej jakby fasady nad całą aplikacją) i wysyłany w świat. Tylko obecnie w przypadku braku danej encji zostanie zwrócony pusty DTO zamiast np 404. Pytanie w którym momencie powinno się sprawdzać czy w Optionalu coś jest?
a) w servisie podczas mapowania na DTO i wywalać jakiś ResourceNotFoundException z @ResponseStatus(value = HttpStatus.NOT_FOUND)?
b)w endpoincie przy dodawaniu linków do HATEOAS?
c)coś innego?

0

No jeśli nie ma nic w Optionalu a chcesz zrobić geta to powinieneś rzucić wyjątek tłumaczony na HTTP 404

2

Wywołanie repository w serwisie

findOne(id).orElseThrow(ResourceNotFoundException ::new)

i łapiesz w global controller advice tłumacząc na co chcesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1