백엔드/Spring(Boot)

JPA 테이블 컬럼명 생성 전략

김어찐 2021. 8. 22. 00:07
728x90

테이블, 컬럼명 생성 전략 스프링 부트에서 하이버네이트 기본 매핑 전략을 변경해서 실제 테이블 필드명은 다름 https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#howtoconfigure-hibernate-naming-strategy

http://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#naming 

하이버네이트 기존 구현: 엔티티의 필드명을 그대로 테이블의 컬럼명으로 사용

( SpringPhysicalNamingStrategy )

 

스프링 부트 신규 설정 (엔티티(필드) 테이블(컬럼))

 1. 카멜 케이스 언더스코어(memberPoint member_point)

 2. .(점) _(언더스코어)

 3. 대문자 소문자

 

 

적용 2 단계

1. 논리명 생성:

   명시적으로 컬럼, 테이블명을 직접 적지 않으면 ImplicitNamingStrategy 사용

spring.jpa.hibernate.naming.implicit-strategy : 테이블이나, 컬럼명을 명시하지 않을 때 논리명 적용

 

2. 물리명 적용:

   spring.jpa.hibernate.naming.physical-strategy : 모든 논리명에 적용됨, 실제 테이블에 적용

(username usernm 등으로 회사 룰로 바꿀 수 있음)

 

스프링 부트 기본 설정

spring.jpa.hibernate.naming.implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy

 

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

 

출처

인프런

김영한 강사님 (스프링 부트와 JPA 활용1)

728x90