0%

JPA SQLSyntaxErrorException 오류 해결

Spring에서 java.sql.SQLSyntaxErrorException이 발생하는 오류 해결 과정이다.

1. JPA → MySQL 연결 할 때 컬럼명이 자동으로 변경 된다.

Screenshot 2023-01-19 at 7.00.21.png

Screenshot 2023-01-19 at 7.05.02.png

x좌표를 xCoordinate라고 하였다. 하지만 MySQL에서도 칼럼명을 xCoordinate라고 하면 연결이 되지 않는다.

Screenshot 2023-01-19 at 7.03.48.png

→ 에러구문을 보면 scooterx_coordinate가 없다고 나온다.

대문자 C_c로 바꾼것을 알 수 있다.

MySQL에 xCoordinatex_coordinate로 바꿔보자.

Screenshot 2023-01-19 at 7.07.03.png

매우 잘 실행 된다.

2. 변수명의 두번째 글자가 대문자이면 안된다.

글로만 봤을 때 잘 이해가 되지 않지만 예시를 보자.

Screenshot 2023-01-19 at 7.09.39.png

스프링에서 사용할 변수명을 xCoordinate 카멜 케이스로 잘 적어놓았다.

이 변수를 repository 에서 활용해 보자.

Screenshot 2023-01-19 at 7.12.24.png

x좌표 사이에 있는 것을 찾기 위한 코드 이다.

자세히 보면 xCoordinate 가 구분을 위해서 첫 글자가 대문자가 되어버렸다.

Screenshot 2023-01-19 at 7.14.24.png

제일 긴 에러 구문의 끝 부분을 보면 XCoordinate가 뭔지 모른다고 나온다.

한 글자를 맨 뒤로 보내보자

Screenshot 2023-01-19 at 7.16.10.png

Screenshot 2023-01-19 at 7.16.44.png

위와 같이 함수명을 만들게 되고 이제 오류 없이 실행된다.

Screenshot 2023-01-19 at 7.18.03.png


칼럼명을 잘 맞췄다 생각하는데 안될 때는 spring.jpa.hibernate.ddl-auto=create옵션을 사용하는 것도 방법이다.

하지만 기존 Table을 DROP하고 다시 생성하는 것 이니 주의해서 사용하자.

사실 더 좋은 방법은 애초에 변수명을 잘 짓는 것 이다.