본문 바로가기
Programming/Java

[Java] SQL [n/a]; nested exception is org.hibernate.exception execute statement 오류 해결

by Kor-IT 2022. 9. 29.
반응형

에러 화면

해당 오류 내용을 대략 번역해보면 'SQL 구문에 오류가 있다.'라는 내용이다. 이와 관련해서 여러 글들을 찾아보면 대부분 SQL 이 잘못되어 있거나 Model 명과 실제 테이블 컬럼의 명이 다르거나 SQL 쿼리 문이 잘못되어 있다는 거였다.

 

나도 처음에는 쿼리문이 잘못 되어있는줄 알고 찾아보았지만 쿼리문에는 문제가 없었다. 그러다 알게 된 사실인데 테이블을 생성할 때 예약어를 컬럼명이나 DB 명으로 생성하는 안 되는 거였다. 그중 난 'Order'라는 단어를 사용했는데 이것 조차 안 되는 건 줄 몰랐다.

 

 

해결 방식

1. 쿼리 문에 문제가 있는지 확인한다.

2. 예약어를 사용했는지 확인한다.

 

 

DB 예약어 링크

Oracle

https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm

 

Oracle Reserved Words

30/31 G Oracle Reserved Words This appendix provides a complete list of Oracle reserved words. List of Oracle Reserved Words In addition to the reserved words in Table G-1, Oracle also uses system-generated names beginning with SYS_ for implicitly generate

docs.oracle.com

 

SQL Server

https://learn.microsoft.com/en-us/sql/t-sql/language-elements/reserved-keywords-transact-sql?view=sql-server-ver16 

 

Reserved Keywords (Transact-SQL) - SQL Server

Reserved Keywords (Transact-SQL)

learn.microsoft.com

 

 

MySQL

https://dev.mysql.com/doc/refman/8.0/en/keywords.html

 

MySQL :: MySQL 8.0 Reference Manual :: 9.3 Keywords and Reserved Words

9.3 Keywords and Reserved Words Keywords are words that have significance in SQL. Certain keywords, such as SELECT, DELETE, or BIGINT, are reserved and require special treatment for use as identifiers such as table and column names. This may also be true

dev.mysql.com

 

MariaDB

https://mariadb.com/kb/en/reserved-words/

 

Reserved Words

List of reserved words in MariaDB.

mariadb.com

 

 

예약어를 사용하고 싶은 경우

만약, 예약어로 사용하고싶은 경우 '(작은따옴표)로 묶은 다음 사용하면 된다. ex) 'Order'

하지만 개인적으로 예약어를 사용하는 건 추천하고 싶지 않다.

 

 

 

반응형

댓글