java/JPA

[JPA] 칼럼명 _(언더바)자동 생성 설정 변경(CamelCase로 사용)

kjh42447 2022. 11. 1. 17:41

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 형식으로 작성하는게 좋을 듯 하다.