스프링/JPA

JPA 데이터베이스 초기화 전략 (5가지 )

지팡구 2023. 3. 22. 02:58

jpa에서는 애플리케이션 구동시 JPA 데이터 베이스의 전략을 설정할 수 있습니다. 총 5개의 전략을 지원해줍니다.

  • create : 기존 테이블 삭제 후 테이블 생성
  • create - drop : create와 같지만, 종료 시점에 테이블을 삭제
  • none : 사용하지 않음
  • update : 기존의 테이블과 비교해서 변경된 내용이 있으면 수정 (SessionFactory와 연결된 DB를 비교해서 추가된 항복은 추가, 같은 변수명이면 오류 발생 )
  • validate : 엔티티와 테이블 정상 매핑 확인  ( SessionFactory 시작 시 객체 구성과 스키마가 다르면 예외가 발생)

이렇게 5가지의 전략이 있습니다.

일반적으로 초기 개발이나 테스트 할 떄는 create, update, create-drop을 주로 사용합니다.

그러나 스테이징, 운영 환경에서는 이 3개를 사용하면 안됩니다. 테이블 생성, 컬럼 추가 등의 작업은 데이터베이스에서 직접 하며, none이나 validate를 사용해 정상 매핑 관계만 확인해야 합니다. 

 

여기서 스테이징 환경이란 운영환경과 유사한 환경인데, 배포하기 전 여러 테스트를 검증하는 환경입니다. ( 운영 환경은 실제 서비스를 운영하는 환경 )