카테고리 없음

영속성 컨텍스트

코동이 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으로 사용하도록 한다.


 

반응형