[Hibernate 5] Naming Strategy 설정

sonnie
lucky-sonnie
Published in
3 min readDec 8, 2020

Hibernate 5는 Hibernate 엔티티와 함께 ​​사용하기 위한 2가지 Naming strategy 를 제공한다.

Implicit Naming Strategy

하이버네이트는 엔티티나 attribute 이름을 테이블이나 DB 컬럼 이름에 mapping 하기 위해 논리적 이름을 사용한다. 이 이름은 2가지 방법으로 커스터마이징 할 수 있다. ImplicitNamingStrategy를 사용해 자동으로 만들어 질 수도 있고 어노테이션을 사용해서 명시적으로 설정해 줄 수도 있다.

ImplicitNamingStrategy 는 하이버네이트가 java 클래스 및 속성 이름에서 논리적 이름을 패싱시키는 방법을 제어한다. 네가지 기본 제공 전략 중에서 선택하거나 자체 전략을 만들 수 있다.

아래의 예시에서는 기본 전략(ImplicitNamingStrategyJpaCompliantImpl)을 사용했다. 이 전략을 사용하면 논리적 이름이 자바 클래스및 속성 이름과 동일하다.

기본 전략에서 특정 엔티티의 전략을 바꾸고 싶다면 어노테이션을 써서 커스터마이징 해도 된다.

Customer -> Customers 
firstName -> firstName
lastName -> lastName
emailAddress -> email

Physical Naming Strategy (물리적 이름 지정 전략)

하이버네이트는 physical naming strategy 를 사용하여 논리 이름을 SQL 테이블과 그 컬럼에 매핑한다. 기본적으로 물리적 이름은 위 챕터에서 지정한 논리적 이름과 같다. 만약 물리적 이름을 커스터마이징 하고싶다면 PhysicalNamingStrategy클래스를 만들어 사용하면 된다.

예를 들어, 자바 코드에서는 camel case를 사용하지만 데이터베이스에서는 언더바(_)로 구분된 이름을 사용한다. 어노테이션과 커스터마이징한 ImplicitNamingStrategy 를 사용해서 만들수는 있지만 이 과정을 단순화하기 위해 PhysicalNamingStrategy 를 제공한다. PhysicalNamingStrategy 클래스에서 모두 한번에 사용자 정의를 할 수 있다. (구체적인 예시는 출처에서 확인하세요~~~~~)

번역 출처

https://www.baeldung.com/hibernate-naming-strategy

--

--