Skip to content

MySQL 예약어를 테이블명 또는 컬럼명으로 사용하는 방법

Seo ohsang edited this page Dec 17, 2019 · 4 revisions

배경

  • 사용자가 주문한 목록을 나타내는 Order 클래스를 생성하였다. 그 후, 서버를 실행시켜보니 알 수 없는 에러 메시지가 출력되었다.

    • Order 클래스

    • 서버 실행 시 출력된 에러 메시지

  • 찾아보니 Order는 MySQL의 예약어이고, MySQL 예약어는 테이블명 또는 필드명으로 사용할 수 없어 생기는 에러였다.

  • 테이블명 또는 컬럼명을 변경할 수도 있지만, 예약어를 아예 사용할 수 없도록 막아놓았는지 궁금했음..


MySQL 예약어를 테이블명 또는 컬럼명으로 사용하는 방법

  • 두 가지 방법 중 하나만 택해서 사용하면 된다.

1. @Table 어노테이션의 name 속성 설정하기

  • @Table(name = "`order`")

  • @Table(name = "\"order\"")

  • @Table(name = "[order]")

2. properties 파일 설정하기

  • application.properties 파일에 spring.jpa.properties.hibernate.globally_quoted_identifiers=true 를 추가한다.


참고자료

Clone this wiki locally