Spring에서 java.sql.SQLSyntaxErrorException
이 발생하는 오류 해결 과정이다.
1. JPA → MySQL 연결 할 때 컬럼명이 자동으로 변경 된다.
x좌표를 xCoordinate
라고 하였다. 하지만 MySQL에서도 칼럼명을 xCoordinate
라고 하면 연결이 되지 않는다.
→ 에러구문을 보면 scooter
에 x_coordinate
가 없다고 나온다.
대문자 C
를 _c
로 바꾼것을 알 수 있다.
MySQL에 xCoordinate
를 x_coordinate
로 바꿔보자.
매우 잘 실행 된다.
2. 변수명의 두번째 글자가 대문자이면 안된다.
글로만 봤을 때 잘 이해가 되지 않지만 예시를 보자.
스프링에서 사용할 변수명을 xCoordinate
카멜 케이스로 잘 적어놓았다.
이 변수를 repository
에서 활용해 보자.
x좌표 사이에 있는 것을 찾기 위한 코드 이다.
자세히 보면 xCoordinate
가 구분을 위해서 첫 글자가 대문자가 되어버렸다.
제일 긴 에러 구문의 끝 부분을 보면 XCoordinate
가 뭔지 모른다고 나온다.
한 글자를 맨 뒤로 보내보자
위와 같이 함수명을 만들게 되고 이제 오류 없이 실행된다.
칼럼명을 잘 맞췄다 생각하는데 안될 때는 spring.jpa.hibernate.ddl-auto=create
옵션을 사용하는 것도 방법이다.
하지만 기존 Table을 DROP하고 다시 생성하는 것 이니 주의해서 사용하자.
사실 더 좋은 방법은 애초에 변수명을 잘 짓는 것 이다.