inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

284

te9908

작성한 질문수 1

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

OMG

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

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

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

 

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

감사합니다.

0

te9908

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

0

OMG

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

 

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

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

https://bit.ly/3fX6ygx


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


감사합니다.

1

te9908

https://drive.google.com/file/d/1LEh6oeMt9d325jixHuOai1BqGCSWVv5d/view?usp=drive_link

 

도움주셔서 너무 감사드립니다.

0

OMG

코드 확인해보았습니다.

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

=>

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

으로 변경해주세요 :)

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

image

1

te9908

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

맥유저 입장의 고려해주세요

2

81

1

케이테스트 서버 운영 방법

2

52

1

수업 잘 들었습니다.

2

25

2

실행과정 질문입니다.

2

25

1