Optional<Review> entity = repository.findById(id);
이러한 코드의 다음 줄에 entity.setContent를 사용하고자 했는데 setter가 사용이 안 되는 것이었다!!
분명히 Review 엔티티에 setter가 있는데도 사용이 안 되니 굉장히 난감했다.
알고보니...
Optional을 사용한 경우에 바로 setter의 사용이 불가능하고
entity.ifPresent(review -> {
review.setDeleted(true);
});
이런 식으로 isPresent 메소드 + 람다식을 사용해야 비로소 setter를 사용할 수 있는 것이다~~
ifPresent 메서드는 Optional 객체에 값이 존재하는 경우에만 지정한 동작을 수행할 수 있습니다. 이를 통해 값의 유무를 확인하고, 값이 있는 경우에만 해당 동작을 수행할 수 있습니다. ifPresent 메서드를 사용하여 값의 존재 여부를 검사하고, 필요한 동작을 수행함으로써 NullPointerException 을 방지하고 안전한 코드를 작성할 수 있습니다.
'개발일지 > 2023_한이음' 카테고리의 다른 글
[개발]🚨ERROR - .w.s.m.s.DefaultHandlerExceptionResolver (0) | 2023.06.23 |
---|---|
[개발]🚨ERROR - javax.persistence.NonUniqueResultException: (0) | 2023.06.22 |
[개발]🤦🏻♀️고민하기 - review 기능에 커스텀 DTO 적용 (1) | 2023.06.17 |
[개발]🎁배운점 - @JsonIgnore (0) | 2023.06.16 |
[개발]🤦🏻♀️고민하기 - Review_논리적 삭제(logical delete) 도입 (0) | 2023.06.15 |