작성
·
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님. JPA 진행중이라 하여 해당 부분의 오류를 예상하였는데요, Jdbc 쪽 문제일 수도 있습니다. 추측만 가능하여 코드를 직접 실행해봐야 알 것 같아요.
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
감사합니다.
코드 확인해보았습니다.
@Column(name = "username")
private String name;
=>
@Column(name = "name")
private String name;
으로 변경해주세요 :)
문제 해결의 단서는 아래와 같이 USERNAME을 찾을 수 없다는 메시지가 출력되어 확인할 수 있었습니다.
could not prepare statement라는 SQL그래머 예외가 발생합니다. 강의 중에서 pstmt를 사용했던 기억이 있는데 혹시 이 부분에서 무언가 빠져서 생기는 예외일까요...? 코드를 다시 쭉 살펴봤지만 별다른 에러메세지는 보이지 않았습니다...