본문 바로가기

Programing/Framework

Spring Boot: JPA(Hibernate) 네이밍 전략

spring.jpa.hibernate.naming.physical-strategy 및 spring.jpa.hibernate.naming.implicit-strategy 을 통해 테이블 이름이나 컬럼 이름에 대한 네이밍 전략 설정이 가능하다.

 

네이밍 컨벤션에는 여러가지가 있다.

  • camelCase: 앞자는 소문자 단어 사이에 대문자
    • PascalCase: camleCase와 같은데 첫 글자가 대문자이다. Initial Capitals, Initial Caps, InitCaps 로도 불린다.
  • snake_case: 모든 문자는 소문자(lowercase)로 단어간 구분은 언더스코어(_)로 구분한다.
  • kebab-case: 모든 문자는 소문자(lowercase)로 단어간 구분은 대시(-)로 구분한다.
  • ALL CAPS: all capitals 의 줄임말로 모든 글자를 대문자로 쓴다.
  • strHungarianNotation : 제일 앞에 타입을 가리키는 접두어를 붙인다. Win32 API에서 흔히 볼 수 있었다.

등등..

 

스프링 부트에서는 기본적으로 물리 네이밍 전략을 SpringPhysicalNamingStrategy 를 사용한다.

spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy


이 형태는 NamingStrategy 라는 엔티티를 naming-strategy 라는 이름으로 매핑한다.

Hibenate 4에서 이런 형태를 썼다.
출처: 스프링 부트 레퍼런스 12.8.6. Configure Hibernate Naming Strategy

만약 하이버네이트 5의 기본 형태는 PhysicalNamingStrategyStandardImpl 를 설정하면 가능하다.

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