-
[Spring] 테이블, 컬럼명 생성 전략Spring 2021. 11. 9. 21:39
스프링 부트에서 하이버네이트 기본 매핑 전략을 변경해서 실제 테이블 필드명은 다르다.
하이버네이트 기존 구현은 엔티티의 필드명을 그대로 테이블의 컬럼명으로 사용한다.(SpringPhysicalNamingStrategy)
스프링 부트 신규 설정에 의해 그 규칙이 바뀌었는데,
엔티티(필드) -> 테이블(컬럼)
1. 카멜 케이스 -> 언더스코어 (memberPoint -> member_point)
2. .(점) -> _(언더스코어)
3. 대문자 -> 소문자
이렇게 기본세팅은 이렇지만, 회사나 단체의 규정에 따라 커스텀이 필요할 때가 있다.
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 - 웹 애플리케이션 개발 - 인프런 | 학습 페이지 (inflearn.com)
'Spring' 카테고리의 다른 글
[Spring]test폴더에 yml파일을 따로 두면 좋은 이유 (0) 2021.11.10 [Spring] 양방향 연관관계 세팅시 필요한 연관관계 메소드 (0) 2021.11.09 [Spring] 컬렉션은 필드에서 초기화해야 하는 이유 (0) 2021.11.09 [Spring] 모든 연관관계는 지연로딩으로 설정해야하는 이유 (0) 2021.11.09 [Spring] @ManyToMany를 사용 안 하는게 좋은 이유 (0) 2021.11.09