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
반응형
'Database' 카테고리의 다른 글
[Procedure] 동시성 문제, GOTO를 활용한 PK에러 해결 (0) | 2023.09.06 |
---|---|
우왕좌왕 좌충우돌 Slow query 개선 경험기 (0) | 2023.08.18 |
[DB지식] MyBatis 사용 시 <!CDATA[ ... ]]> 사용 이유? (0) | 2021.11.01 |
[DB] 인덱스(Index) 사용 예시 (생성, 조회, 삭제, 리빌드) (0) | 2021.09.17 |
[DB] 데이터베이스(DB) 인덱스(Index) 란 무엇인가? (0) | 2021.09.13 |
댓글