인프런 커뮤니티 질문&답변

djup1234님의 프로필 이미지
djup1234

작성한 질문수

실전! 스프링 데이터 JPA

Web 확장 - 도메인 클래스 컨버터

NoSuchElementException: No value present 오류가 납니다ㅠㅠ

작성

·

1.3K

·

수정됨

0

@RequiredArgsConstructor
@RestControllerpublic 
class MemberController {

private final MemberRepository memberRepository; 

@GetMapping("/members/{id}")
public String findMember(@PathVariable("id") Long id) {
Member member = memberRepository.findById(id).get(); 
return member.getUsername(); 
}

public void init() {
memberRepository.save(new Member("userA")); 
}

 

2023-06-17T14:29:55.066+09:00 DEBUG 6856 --- [nio-8080-exec-1] org.hibernate.SQL :

select

m1_0.member_id,

m1_0.age,

m1_0.created_by,

m1_0.created_date,

m1_0.last_modified_by,

m1_0.last_modified_date,

m1_0.team_id,

m1_0.username

from

member m1_0

where

m1_0.member_id=?

2023-06-17T14:29:55.068+09:00 INFO 6856 --- [nio-8080-exec-1] p6spy : #1686979795068 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/datajpa

select m1_0.member_id,m1_0.age,m1_0.created_by,m1_0.created_date,m1_0.last_modified_by,m1_0.last_modified_date,m1_0.team_id,m1_0.username from member m1_0 where m1_0.member_id=?

select m1_0.member_id,m1_0.age,m1_0.created_by,m1_0.created_date,m1_0.last_modified_by,m1_0.last_modified_date,m1_0.team_id,m1_0.username from member m1_0 where m1_0.member_id=1;

2023-06-17T14:29:55.071+09:00 INFO 6856 --- [nio-8080-exec-1] p6spy : #1686979795071 | took 0ms | commit | connection 4| url jdbc:h2:tcp://localhost/~/datajpa

;

2023-06-17T14:29:55.074+09:00 ERROR 6856 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.util.NoSuchElementException: No value present] with root cause

java.util.NoSuchElementException: No value present

at java.base/java.util.Optional.get(Optional.java:143) ~[na:na]

at study.datajpa.constoller.MemberController.findMember(MemberController.java:18) ~[classes/:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) ~[spring-web-6.0.9.jar:6.0.9]

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) ~[spring-web-6.0.9.jar:6.0.9]

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.9.jar:6.0.9]

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[spring-webmvc-6.0.9.jar:6.0.9]

 

http://localhost:8080/members/1에 userA가 나와야 하는데 Whitelabel Error Page가 뜨고 위와 같은 오류가 나옵니다.

답변 1

0

안녕하세요. djup1djup1234234님, 공식 서포터즈 OMG입니다.

데이터를 조회하려할 때 실패해서 발생하는 문제로, 저장이 잘 안되었거나 조회가 실패하여 발생하지 않나 생각하는데요,

실행환경을 테스트로 하신것은 아닌지와 강의와 다른점이 없는지(놓친것이 없는지) 강의를 순차적으로 다시 확인해보시고 해결이 안될 경우 댓글 남겨주세요.

감사합니다.

djup1234님의 프로필 이미지
djup1234
질문자

실행환경을 테스트로 한다는게 무슨뜻이에요?ㅠㅠ

콘솔에 userA id=1이라고 나오는데(저장도 되었고 조회도 잘 된 거 아닌가요?) h2DB에는 없는데 괜찮은 건가요?

실행환경을 테스트로 한다고 설명드린것은 본 강의 2분에서 보이는 화면(DataJpaApplication클래스)에서

image서버를 실행시키지 않고,

테스트를 실행시켜서 확인하신건 아닌지 질문을 드린 것이였습니다.

 

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵네요. 코드와 프로젝트 환경을 확인해봐야 알 것 같습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

감사합니다.

 

djup1234님의 프로필 이미지
djup1234

작성한 질문수

질문하기