Open raycon opened 3 years ago
MySQL 8.0 Keywords and Reserved Words 를 보면 여러가지 키워드와 예약어가 있다.
기존의 DB에 있던 default, order 컬럼을 JPA로 매핑하기 위해서 다음과 같이 작성하면 H2 데이터베이스 생성시에 오류가 발생한다.
default
order
@Column(name = "order") private int order;
이 경우 name 값을 "\"order\"" 로 지정하면 오류가 발생하지 않는다.
"\"order\""
@Column(name = "\"order\"") private int order;
hibernate.globally_quoted_identifiers 옵션을 true로 설정해서 전체 테이블과 컬럼에 인용부호를 적용하도록 한다.
hibernate.globally_quoted_identifiers
true
Spring Data JPA 사용시에 application.yml에 다음과 같이 설정한다.
application.yml
spring.jpa.properties.hibernate.globally_quoted_identifiers=true
https://stackoverflow.com/questions/2224503/how-to-map-an-entity-field-whose-name-is-a-reserved-word-in-jpa
MySQL 8.0 Keywords and Reserved Words 를 보면 여러가지 키워드와 예약어가 있다.
기존의 DB에 있던
default
,order
컬럼을 JPA로 매핑하기 위해서 다음과 같이 작성하면 H2 데이터베이스 생성시에 오류가 발생한다.해결 방법 1 - 따옴표로 감싸기
이 경우 name 값을
"\"order\""
로 지정하면 오류가 발생하지 않는다.해결 방법 2 - 하이버네이트 설정 사용
hibernate.globally_quoted_identifiers
옵션을true
로 설정해서 전체 테이블과 컬럼에 인용부호를 적용하도록 한다.Spring Data JPA 사용시에
application.yml
에 다음과 같이 설정한다.