티스토리 뷰
스프링 부트 버전이 2.7.0으로 올라가면서 H2 버전도 같이 2.x.x로 변경되었는데, 이전에 예약어가 아니었던 year가 예약어가 되어 애플리케이션이 깨지는 현상이 발생하였습니다.
근본적인 해결 방법은 예약어 컬럼명을 따옴표(quote)를 감싸는 것인데 이렇게 처리하기 위한 몇 가지 방법을 소개합니다.
@Column 애너테이션 내 따옴표(") 사용
이전에는
@Column(name="open")
이렇게 예약어를 사용하는 경우
@Column(name="`open`")
백틱을 추가하는 방식으로 해결 가능했었는데요,
이제는
@Column(name="\"year\"")
이런식으로 따옴표를 추가하여 해결할 수 있습니다.
설정 변경
hibernate의 설정을 추가하여 해결할 수 있습니다.
hibernate.auto_quote_keyword=true
이 속성을 추가하면 모든 예약어에 대해 따옴표를 추가합니다.
스프링 부트에 적용하려면 아래 처럼 설정할 수 있습니다.
jpa.properties.hibernate.auto_quote_keyword=true
jpa:
properties:
hibernate:
auto_quote_keyword: true
hibernate.globally_quoted_identifiers=true이 속성을 추가하면 모든 DB identifier에 대해 따옴표를 추가합니다.
'JPA' 카테고리의 다른 글
| [JPA] 양방향 연관관계 (0) | 2022.06.29 |
|---|---|
| [JPA] 단방향 연관관계 (0) | 2022.06.28 |
| [JPA] 사용시 연관관계가 필요한 이유 (0) | 2022.06.25 |
| 스프링 데이터 JPA - 새로운 Entity 판별 (3) | 2021.07.14 |
| 스프링 데이터 JPA - JPA 구현체 분석 (0) | 2021.07.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring Boot JPA
- Spring Data JPA
- 스프링 부트 튜토리얼
- 헥사고날 아키텍처
- Spring Boot
- Jackson
- 스프링 데이터 jpa
- 스프링 부트 회원 가입
- 클린 아키텍처
- r
- Spring Boot Tutorial
- 스프링부트
- Java
- 알고리즘
- intellij
- QueryDSL
- 함께 자라기 후기
- 스프링 부트 애플리케이션
- spring boot jwt
- leetcode
- @ManyToOne
- JSON
- proto3
- gRPC
- Linux
- 함께 자라기
- spring boot app
- JPA
- 스프링 부트
- spring boot application
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
글 보관함
