개발하는 자몽

[JPA] Hibernate의 데이터베이스 초기화 전략 본문

Java/Spring

[JPA] Hibernate의 데이터베이스 초기화 전략

jaamong 2022. 12. 21. 14:34

H2 인메모리 DB를 사용하면 알아서 스키마를 초기화하지만, 별도의 DB를 사용하면 초기화하지 않는다. 

따라서 application.properties에 관련 설정을 작성해야 한다.

 

Hibernate 전략

spring.jpa.generate-ddl

애플리케이션 시작 시 스키마 초기화 여부를 지정하며 기본값은 false다.

 

spring.jpa.hibernate.ddl-auto

DB 초기화 전략 옵션이다.

  • none : DDL 핸들링 작업을 수행하지 않는다.
  • create : 기존에 존재하는 스키마를 삭제(drop)하고 새로 생성한다.
  • create-drop : 스키마를 생성하고 애플리케이션이 종료될 때 삭제(drop)한다.
  • update : 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추가한다.
  • validate : 엔티티와 테이블이 정상적으로 매핑되어있는지만 검증한다.

 

Spring Boot automatically creates the schema of an embedded DataSource.

인메모리 DB를 사용하면 별도의 옵션을 설정하지 않더라도 자동으로 create-drop 전략을 채택하여 초기화한다. spring.jpa.generate-ddlfalse이거나, true더라도 spring.jpa.hibernate-ddl-auto를 별도로 지정하지 않는다면 항상 create-drop이다.

 

 

 

 

참고

 

Spring Data JPA의 DB 초기화 전략

DDL Auto 옵션에 대해 알아보자.

xlffm3.github.io

 

'Java > Spring' 카테고리의 다른 글

[Spring Security] @EnableWebSecurity  (0) 2022.12.30
[JPA] Entity - 매핑 관계  (0) 2022.12.22
[Spring]JdbcTemplate  (0) 2022.09.30
스프링 예외 추상화  (1) 2022.09.29
@SpringBootTest, @TestConfiguration  (0) 2022.09.24
Comments