카테고리 없음
영속성 컨텍스트
코동이
2021. 9. 12. 21:59
1. build.gradle 추가
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
...
}
2. application.yml 추가
generated-ddl
jpa의 하위속성으로 구현체와 상관없이 자동화된 ddl을 사용할 수 있도록 설정한다
false가 기본이다. h2 같은 내부 저장소는 따로 설정하지 않았지만 create-drop이 기본이다
ddl-auto
hiberante에서 제공하는 기능이다. 설정 시, 엔티티 클래스와 DB를 비교하는 작업을 한다.
- none : 자동 DDL 생성 안함.
- create-drop : 시작될 때 생성 후 종료할 때 삭제한다.
- validate : 시작될 때 엔티티 클래스와 DB에 생성된 스키마 구조를 비교해 같은지 확인만 할 뿐 DB 스키마 구조는 변경하지 않고 만약 다르다면 예외를 발생시킨다.
- update : 시작될 때 엔티티 클래스와 DB에 생성된 스키마 구조를 비교해서 DB쪽에 생성이 안된 테이블 또는 칼럼이 있다면 DB 스키마를 변경해서 생성시키지만 기 생성된 스키마 구조를 삭제하지는 않는다.
- create : 시작될 때 항상 다시 생성, 이미 있다면 지우고 생성.
spring:
jpa:
generate-ddl: true
hibernate:
ddl-auto: update
initialization-mode
data.sql, schema.sql 설정을 로딩해서 실행한다
initialization-mode: embedded //deprecated
sql:
init:
mode: embedded
우선순위
initialization-mode가 always로 되어 있으면 ddl-auto보다 우선순위를 가진다
generated-ddl과 ddl-auto 중에 ddl-auto가 우선적으로 적용된다.
운영서버에서는 mode는 무조건 none으로 사용하도록 한다.
반응형