반응형
JPA는 엔티티를 가지고 알아서 테이블을 생성해주는 편리한 기능을 가지고 있습니다.
이 때, JPA는 기준을 가지고 엔티티의 이름, 변수 명을 변환합니다.
ex) memberInfo → MEMBER_INFO
기준은 무엇이고, 이 기준을 바꿀 수 있는 방법에 대해서 알아보겠습니다.
1. JPA의 기본 생성 전략
1) 하이버네이트만 사용하는 경우
- 엔티티 명, 필드 명을 그대로 사용
- ex) memberInfo → memberInfo
2) SpringBoot에서 지원하는 기본 전략
이 전략은 명시적으로 엔티티명, 컬럼명이 지정되지 않은 경우에 적용되는 전략
(@Table, @Column 어노테이션을 통해서 이름을 지정해준 경우엔 적용 X)
- .(점) → _ (언더바)
ex) member.info → member_info - Camel Case → _ (언더바)
ex) memberInfo → memberInfo
2. Spring Boot에서 JPA 생성 전략 변경 방법
1) 논리적 전략 수정
- 논리적 전략 : 명시적으로 엔티티명, 컬럼명이 지정되지 않은 경우에 적용되는 전략
- 방법 : ImplicitNamingStrategy Interface 혹은 해당 자식 클래스들을 상속받아 구현
2) 물리적 전략 수정
- 코드 상에서 어노테이션을 통해서 이름을 지정해준 경우에도 적용되는 전략
- 어느 경우에도 적용되는 전략
- 방법 : PhysicalNamingStrategy Interface 혹은 해당 자식 클래스들을 상속받아 구현
반응형
'BE > JPA' 카테고리의 다른 글
[JPA] Dirty Checking(변경 감지) vs Merge(병합) (0) | 2023.10.15 |
---|---|
[JPA] 로그 속 쿼리의 파라미터 확인 방법 (0) | 2023.01.10 |
[JPA] PK 타입을 UUID로 사용하는 방법 (0) | 2022.05.09 |
[JPA] 17. JPQL - 2편 (0) | 2022.05.04 |
[JPA] 16. JPQL - 1편 (0) | 2022.05.01 |