
1. 현상 & 원인
H2 데이터베이스를 사용해서 User 엔티티를 생성했으나 위 오류 발생.
알아보니 예약어를 테이블 명으로 설정했을 때 해당 오류가 발생한다고 한다.
User가 예약어라고..?
테스트 해보니 mysql 에서는 아무 문제 없이 잘 된다.
H2 Database 공식문서를 보자..
참고링크: https://www.h2database.com/html/advanced.html#keywords

있다. 예약어에 User가.
2.1.212 버전부터 생겼다고 한다.
현재 나는 2.1.214 버전을 사용중이니 예약어와 겹쳐 위 에러가 발생한 것이다.
2. 해결
두 가지가 있다.
첫 째는 깔끔하게 테이블 이름을 바꿔주는 것 (@Table(name = "Users"))
두 번째로는 아래처럼 url에 NON_KEYWORDS 설정을 추가해 주는 방법이 있다.
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/mysecurity;NON_KEYWORDS=USER
username: sa
password:
driver-class-name: org.h2.Driver
'DB' 카테고리의 다른 글
[MySQL] 윈도우 명령프롬프트로 mysql 접속하기 (0) | 2022.09.28 |
---|---|
[DB] 트랜잭션의 ACID 특성과 격리 레벨(isolation level) (0) | 2022.08.07 |