h2로 테스트 잘 하고 rds의 mysql 연결도 잘 되는걸 확인하고 나서 spring이랑 mysql이랑 연결하여 api 테스트를 하는데,
칼럼명이 자동으로 변경되는 것을 확인하였다.
가령 MemberId로 설정하면 member_id가 되거나 하는 형식으로 CamelCase -> underscore로 자동 변환되었다.
DB를 내가 생성한게 아니라서 spring단에서 자동 변환을 막아야했고, 방법도 알아보고싶었다.
application.yml에 다음과 같은 속성을 추가해주면 된다.
jpa:
hibernate:
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl : hibernate5 전의 구현법(Legacy)를 사용 (조금 찾아봤는데 정확한 설명은 없었다. 추측)
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl : 변수명을 그대로 사용
아무래도 이렇게 변경된 데에는 이유가 있는 듯 하다. 다음부터는 DB 칼럼명 자체를 underscore 형식으로 작성하는게 좋을 듯 하다.
'java > JPA' 카테고리의 다른 글
[JPA] Attribute Converter (0) | 2022.11.15 |
---|---|
[JPA] 단방향 매핑 CASCADE 설정하기 (0) | 2022.10.29 |
[Spring + JPA] Field 'id' doesn't have a default value 에러 (0) | 2022.10.25 |
[JPA] ddl-auto 옵션 설정 (1) | 2022.10.18 |
[JPA] 외래키로 테이블 조회하기 (0) | 2022.10.17 |