티스토리 뷰
스프링 부트 버전이 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
- Java
- spring boot app
- spring boot jwt
- JPA
- Jackson
- 알고리즘
- 함께 자라기
- r
- 스프링 부트 회원 가입
- Linux
- 스프링 부트
- leetcode
- 스프링 데이터 jpa
- gRPC
- QueryDSL
- 스프링 부트 튜토리얼
- 스프링부트
- Spring Boot
- @ManyToOne
- intellij
- 함께 자라기 후기
- Spring Boot Tutorial
- spring boot application
- Spring Data JPA
- 클린 아키텍처
- proto3
- Spring Boot JPA
- 헥사고날 아키텍처
- 스프링 부트 애플리케이션
- JSON
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함