티스토리 뷰
반응형
group은 보통 예약어 (SELECT 쿼리에서 사용하는 GROUP BY와 같은 키워드같은 녀석, 변수명으로 쓸 수 없어요)로 정의가 되어 있어 Oracle, MySQL 문법을 사용하는 개발자들이 컬럼명으로 사용하면 에러가 납니다.
1. 틸트 문자열로 감싸준다
틸트 문자열은 숫자 1 옆에 있는 쉬프트를 누르면 물결을 써줄수 있는 (`) 이녀석을 틸트 문자열이라고 합니다. 그래서 보통 이 문자열로 감싸주면 group 이건 order 이건 where 이건 다 감싸주게 됩니다.
@Column(name = "`group`")
private String group;
2. properties 설정을 해준다
spring.jpa.properties.hibernate.globally_quoted_identifiers=true 값을 넣어주면 위에 틸트 문자열로 묶은 것과 같은 효과를 냅니다. 하지만 이는 전체 컬럼명 뿐 아니라 테이블 명에도 붙게됩니다.
아래의 글에서 참조를 많이 했습니다.
https://madplay.github.io/post/how-to-escape-a-column-name-with-spring-data-jpa
Spring Data JPA를 사용할 때 필드 이름이 데이터베이스의 예약어와 같아서 문법 오류가 발생한다면?
JPA의 엔티티 클래스 또는 필드 이름이 order, group과 같은 데이터베이스의 예약어와 동일하여 문법 오류가 발생하는 경우에는 어떻게 해야 할까?
madplay.github.io
반응형
'Server' 카테고리의 다른 글
LetsEncrypt SSL 인증서 갱신/삭제방법 및 자동갱신 적용하기 (0) | 2022.08.17 |
---|---|
Docker Compose 사용법 (2) | 2022.08.16 |
멀티노드 환경에서 ShedLock을 사용하여 Scheduled 사용하기 (0) | 2022.08.15 |
Jenkins에서 배치 생성하기 (1) | 2022.08.01 |
[Java] JPA Boolean/LocalDate Soft Delete 구현하기 (1) | 2022.06.20 |
ECR 사용해서 Jenkins 배포하기 (0) | 2022.06.08 |
댓글
공지사항