작성
·
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
실행환경을 테스트로 한다고 설명드린것은 본 강의 2분에서 보이는 화면(DataJpaApplication클래스)에서
서버를 실행시키지 않고,
테스트를 실행시켜서 확인하신건 아닌지 질문을 드린 것이였습니다.
도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵네요. 코드와 프로젝트 환경을 확인해봐야 알 것 같습니다.
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
감사합니다.
실행환경을 테스트로 한다는게 무슨뜻이에요?ㅠㅠ
콘솔에 userA id=1이라고 나오는데(저장도 되었고 조회도 잘 된 거 아닌가요?) h2DB에는 없는데 괜찮은 건가요?