java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135)
at ~~~.service.AbstractEntityService.findById_aroundBody30(AbstractEntityService.java:95)
No value... 벌써부터 값이 없다는 느낌이 든다.
다음줄에 Optional.get 을 확인할 수 있고, 그 아래엔 findById를 볼 수 있다.
예시
Group group = findById(member.getGroupId());
* member가 가지고 있는 GroupId로 group을 조회할 시 위와 같은 에러가 발생하였다.
해결
@Transactional(readOnly = true)
public T findById(ID id) {
return getBaseRepository().findById(id).orElse(null);
}
기존 : findById(id).get();
수정 : findById(id).orElse(null);
* get() 사용시 Optional 객체에서(null인상태) 데이터를 꺼내지 못해서 No value 에러가 발생하였다.
.orElse(T other) 사용시 Optional 객체에 저장된 값이 있으면 return하고,
저장된 값이 없을시 파라미터로 전달된(T other) 값을 반환한다. 필자는 null로 셋팅함.
Group group = findById(member.getGroupId());
// → findById 수정(.orElse(null))
if(group == null) {
continue;
}
다음엔 Optional class에 대해 상세히 포스팅 하겠다.
끝.
본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요.
정보 공유를 위한 포스팅에 큰 힘이 됩니다.
만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다.
읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요.
'JAVA' 카테고리의 다른 글
onClick , onkeydown 마우스클릭 / 엔터 이벤트 처리 (0) | 2022.01.14 |
---|---|
Log4j 취약점 (긴급조치) (0) | 2021.12.21 |
[JAVA] java cron expression (0) | 2021.10.29 |
[JAVA] contains 함수의 재밌는 원리 (1) | 2021.10.28 |
[JAVA] Json key값 존재 여부 확인 .has() (0) | 2021.10.26 |