
[스프링] Optional [orElse vs orElseGet]
2022. 11. 19. 19:39
스프링
orElse User user = userRepository.findByUsername(username).orElse( userRepository.save(User.builder() .username(username) .password(password) .email(email) .provider(provider) .providerId(providerId) .role(role) .build()) ); return user; Optional의 값 유무와 상관 없이 실행된다. Optional이 null이 아니라면 가져온 값 반환, null이라면 orElse로 실행된 값 반환. 즉, 위 코드에서 user 값이 있더라도 새로운 User 객체가 생성되어 저장된다. orElseGet User user = userRe..