참조
각종 설정
open-in-view
- 영속성 컨텍스트가 데이터베이스 커넥션을 DB에 언제 돌려주는지 설정 가능
- 트랜잭션 메서드를 실행하는 경우 영속선 컨텍스트가 커넥션을 받아서 필요한 데이터를 가져옴
open-in-view=true
경우 영속성 컨텍스트가 client에게 응답이 끝난 후 커넥션을 반납
open-in-view-false
경우 영속성 컨텍스트가 트랜잭션 종료 후 커넥션 반납
ddl-auto
create
: 테이블이 없는 경우 테이블 생성
create-drop
: 테스트 환경에 적합하며 테스트 실행 시 mock data 위한 테이블을 생성하고 종료후 테이블을 삭제
validate
: 실행 시 Entity 와 테이블 스키마가 정상적으로 매핑되는지 확인 후 매핑되지 않는 경우 예외와 함께 실행되지 않음
update
: 이미 테이블이 존재하는 상황에서 entity 속성이 추가된 경우 기존 데이터를 변화 없이 새로운 컬럼을 추가
none
: 아무것도 하지 않음
generate-ddl
- ddl 생성 시 데이터베이스 고유의 기능을 사용하는지에 대한 유무
show-sql
- jpa나 hibernate를 통해 CRUD 실행하며 해당 CRUD의 sql을 로깅
database
database-platform
- spring data jpa 라이브러리는 기본적으로 hibernate라는 jpa 구현체를 사용함
- jpa는 인터페이스로 확장된 개념이 hibernate
- hibernate 내부적으로 지정되는 DB에 맞게 SQL문을 생성하는 Dialect(방언) 존재
- Dialect는 Hibernate가 다양한 데이터베이스를 처리하기 위해 각 데이터베이스에 맞는 SQL 문법을 처리하기 위해 존재
- MySQL5Dialect, MySQL5InnoDBDialect, Oracle10gDialect, OracleDialect 등 다양한 Dialect 가짐
properties
hibernate
id.new_generator_mapping
(default=true)
true
= SequenceStyleGenerator를 사용하게 되는데 DB가 Sequence를 지원하는 경우 Sequence Generator를 지원하지 않는 경우 Table Generator
false
= Native Generator가 되고 Native Generator는 다시 hibernate에 설정된 Dialect로 결정
implict_naming_strategy
(암시적 명칭 전략)
- 명시적으로 네이밍이 지정되지 않는 엔티티들의 명칭을 만들어주는 방식으로
@Table, @Column
어노테이션으로 지정한 경우 적용되지 않음
ImprovedNamingStrategy
: 카멜 케이스를 언더 스코어 버전으로 변경
SpringNamingStrategy
(default): ImprovedNamingStrategy를 상속한 클래스
SpringPhysicalNamingStrategy
: 카멜 케이스를 언더 스코어 형태로 변경
PhysicalNamingStrategyStandardImpl
: 변수 이름을 그대로 사용
physical_naming_strategy
(물리적 명칭 전략)
- DB 변경 등으로 명칭 정책이 변경되는 경우 사용
globallay_quoted_identifiers
- DB에 있는 예약어와 칼럼명이 겹치는 경우에 대한 설정
default = false
true
= SQL문이 실행될 떄 백팅으로 테이블, 컬럼을 감싸서 사용하므로 예약어 이슈가 사라짐
default_batch_fetch_size
- 복잡한 조회쿼리 작성시 지연로딩으로 발생해야 하는 쿼리를 IN절로 한번에 모아 보내는 기능
- 지연로딩이란 아직 사용하기 전 엔티티를 프록시 객체로 저장해두고 실제 사용하는 시점에 DB에 쿼리를 보내서 데이터를 불러오는 기
org
hibernate
envers
revision_field_name
: history 테이블 revision_id 컬럼 이름
revision_type_field_name
: history 테이블 revision_type 컬럼 이름
audit_table_suffix
: history 테이블을 직접 만드는 경우 접미사
store_data_at_delete
: 삭제 여부 저장