글을 쓰게 된 배경

board라는 Entity클래스에 order이라는 변수를 추가했는데 아래와 같이 에러가 발생했다.
알아보니 order은 예약어 이기때문이다.

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "  
alter table board       
add constraint FKqurgsvbj6pv06modyixkngwby      
foreign key (share_id)       
references share" via JDBC Statement

 

그렇다면 예약어란?

각 DB에는 예약어라는 존재한다. 예약어는 그 DB의 문법에 해당되는 단어라고 생각하면된다.

예를 들어보겠습니다.

거의 모든 DB에는 SELECT 라는 예약어를 가지고 있을 것이다.
board라는 클래스에 select 라는 변수가 있고
조회하는 쿼리문을 작성한다면 아래와 같이 작성될 것이다.

select *
from select 

위와 같이 써진다면 DB에서는 select가 왜 from 다음에 오는지 에러를 내게 된다.

즉, sql이 작성될 때 에러가 발생하는 것을 방지하기 위해 예약어를 변수명이나 클래스명 으로 사용하는 것을 방지하기 위해
아래와 같이 런타임시 에러를 발생시킨다는 것이다.

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "  
alter table board       
add constraint FKqurgsvbj6pv06modyixkngwby      
foreign key (share_id)       
references share" via JDBC Statement

'데이터베이스' 카테고리의 다른 글

[DataBase] ORM과 SQL  (0) 2022.06.19
복사했습니다!