Spring Data JPA를 사용하면 select의 리턴값으로 Optional <>을 준다.
그러다 보니 Optional을 사용할 기회가 생기게 되었고, 사용하다 보니 알아두면 좋은 메서드들이 있어서
정리하면서 추후에도 유용하게 쓸 수 있도록 학습해보자.
Optional.ifPresentOrElse()
Optional<Token> token = tokenService.selectToken(dto.id());
if (token.isEmpty()) {
tokenService.insertToken(dto);
} else {
tokenService.updateToken(dto, token.get());
}
위의 같이 결과가 존재하는 경우 존재하지 않는 경우 이렇게 나눠져 로직을 진행하는 경우 ifPresentOrElse에 파라미터를 람다로 줘서 한 번에 해결할 수 있다.
tokenService.selectToken(dto.idNo().ifPresentOrElse(
token -> tokenService.updateToken(dto, token),
() -> tokenService.insertToken(dto)
);