[JPA] Spring Boot JPA Entity Table 대, 소문자 구분 못하는 경우 해결

GilLog·2021년 7월 10일
5

에러

목록 보기
15/17
post-custom-banner

🙆‍♂️ import 🙇‍♂️

Springboot jpa & Hibernate Naming Strategy(네이밍 전략)[IT.FARMER]


문제 상황

SpringBoot에서 JPA를 통해서 Entity Class@Table Annotation으로 DB Table 명을 아래 사진처럼 대문자로 입력했는데,

실제로 Hibernate의 Query 실행 결과를 보니 소문자로 매핑되고 있었고,

대문자로 생성된 Table과 매핑이 안되고 있었다.

그래서 application.properties에서 spring.jpa.hibernate.ddl-auto=create로 설정하고,

DB Schema를 확인해보니 소문자 Table이 생성되어있는걸 확인했다.

문제 원인

나는 핵심 문구JPA, Entity, Table, UPPER, NOTWORKING 등의 검색어Google 신께 신탁했고, 원인을 발견했다.

해당 원인은 Spring BootDB Physical Naming Strategy 때문이었다.

Spring Boot의 기본 DB Physical Naming 전략은 아래와 같았다.

모든 도트는 밑줄로 대체, Camel Case 대문자는 밑줄로 대체, 모든 테이블은 소문자로 구성

문제 해결

Spring BootPhysical Naming Strategy를,

hibernatePhysical Naming Strategy로 변경하여 해결했다.


hibernatePhysicalNamingStrategyStandardImpl 전략은,

설정한 변수 이름을 그대로 사용하여,

@Table에서 지정한 설정대로 그대로 사용할 수 있다.


application.properties에 아래 설정을 추가해주면 된다.

spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

설정 변경후, 정상적으로 대문자로 Query가 생성되어 정상적으로 매핑되었다.

오늘도 해결 완료 :) 🙆🏻‍♂️

profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/
post-custom-banner

0개의 댓글