본문 바로가기
Database

[H2] JPA User 엔티티, 테이블 drop 에러

by 드럼치는 코린이 2023. 8. 20.
728x90
반응형

상황

H2 DB를 사용하고 있고, Jpa를 이용해 User 엔티티를 만들어 애플리케이션을 실행했다.

에러가 발생했다.

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "drop table if exists [*]user"; expected "identifier"; SQL statement:

 

원인

나는 지금 H2 2.1.214 버전을 사용중인데 2.1.212 버전부터 user 키워드가 예약어로 지정되었기 때문이다.

 

해결

해결 방법은 3가지다.

1. @Table 사용하기

@Entity
@Table(name = "users")
public class User {...}


2. User 엔티티 이름 변경하기

@Entity
public class Users {...}


3. h2 예약어 제외하기

#application.yml
spring:
  datasource:
    hikari:
      jdbc-url: jdbc:h2:mem://localhost/~/testdb;NON_KEYWORDS=USER

 


참고)

728x90
반응형

댓글