강의

멘토링

로드맵

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

te9908님의 프로필 이미지
te9908

작성한 질문수

김영한 선생님의 스프링 입문 강의 중

작성

·

273

1

안녕하세요. 김영한 선생님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 수강 중인 학생입니다. 섹션 6 DB 파트의 JPA 마지막 회원가입 test를 하는 중 에러가 발생했습니다. 에러가 난 부분은 코드 블럭의 memberService.join(member);의 join에서 나는 것 같습니다. javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not prepare statement 의 에러 메세지도 함께 뜨는데 찾아봐도 잘 모르겠습니다.

@Test
    void 회원가입() {
        // given
        Member member = new Member();
        member.setName("spring");

        // when
        Long saveId = memberService.join(member);

        // then
        Member findMember = memberService.findOne(saveId).get();
        assertThat(member.getName()).isEqualTo(findMember.getName());
    }

답변 1

0

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

JPA 챕터 진행중 SQL그래머 예외가 발생하였다면 아래의 2개의 메서드(findAll, findByName중 강의와 다른 부분이 있어 발생하지 않았나 예상합니다.

제공해드리는 메뉴얼에서 해당 코드를 복사하여 진행중인 프로젝트 코드에 붙여넣어서 실행해보시겠어요?

 

image해결이 안될 경우 댓글 남겨주세요 :)

감사합니다.

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

could not prepare statement라는 SQL그래머 예외가 발생합니다. 강의 중에서 pstmt를 사용했던 기억이 있는데 혹시 이 부분에서 무언가 빠져서 생기는 예외일까요...? 코드를 다시 쭉 살펴봤지만 별다른 에러메세지는 보이지 않았습니다...

안녕하세요. te9908님. JPA 진행중이라 하여 해당 부분의 오류를 예상하였는데요, Jdbc 쪽 문제일 수도 있습니다. 추측만 가능하여 코드를 직접 실행해봐야 알 것 같아요.

 

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

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

https://bit.ly/3fX6ygx


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


감사합니다.

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

코드 확인해보았습니다.

@Column(name = "username")
private String name;

=>

@Column(name = "name")
private String name;

으로 변경해주세요 :)

문제 해결의 단서는 아래와 같이 USERNAME을 찾을 수 없다는 메시지가 출력되어 확인할 수 있었습니다.

image

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

코드 수정하니 해결되었습니다. 부족함을 많이 느끼네요... 다시 열심히 공부해보겠습니다. 도와주셔서 정말 감사드립니다..!!

te9908님의 프로필 이미지
te9908

작성한 질문수

질문하기