JPA - Mysql 컬럼명 대문자 생성이 안될 때
2022. 3. 24. 14:35ㆍBackEnd(Java)/Spring Data JPA
jpa에서 @Column(name="ID") 을 사용하여 컬럼 매핑을 대문자로 했는데 hibernate 실행 쿼리는 소문자로 매핑되고 있고 실제 DB에 소문자로 컬럼이 설정됐다.
왜 대문자로 안되는지 구글에서 찾아보다가 나와 비슷한 문제를 겪고 있는 사람 발견하였음!
원인
=> Spring boot의 DB Physical Naming Strategy 때문이었고 DB Physical Naming Strategy은 아래와 같음
모든 도트는 밑줄로 대체, Camel Case 대문자는 밑줄로 대체, 모든 테이블은 소문자로 구성
해결 방법
=> Spring Boot의 DB Physical Naming Strategy에서 Hibernate DB Physical Naming Strategy로 변경하여 해결!!
hibernate의 PhysicalNamingStrategyStandardImpl 전략은 설정한 변수 이름을 그대로 사용, @Table에서 지정한 설정대로 그대로 사용 가능하다.
따라서 application.properties에 아래 설정을 추가 하면 해결된다!
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
반응형
'BackEnd(Java) > Spring Data JPA' 카테고리의 다른 글
부모 - 자식 엔티티 관계 삭제 (0) | 2022.04.19 |
---|---|
생성 시간, 수정 시간 자동으로 값 넣기 (0) | 2022.03.29 |
JPA - Mysql 컬럼 매핑 (0) | 2022.03.24 |
@Not Null vs @Column(nullable = false) 차이 비교 (0) | 2022.03.24 |
하이버네이트 자동 키 생성 전략 (0) | 2022.03.24 |