jpa에서는 애플리케이션 구동시 JPA 데이터 베이스의 전략을 설정할 수 있습니다. 총 5개의 전략을 지원해줍니다.
- create : 기존 테이블 삭제 후 테이블 생성
- create - drop : create와 같지만, 종료 시점에 테이블을 삭제
- none : 사용하지 않음
- update : 기존의 테이블과 비교해서 변경된 내용이 있으면 수정 (SessionFactory와 연결된 DB를 비교해서 추가된 항복은 추가, 같은 변수명이면 오류 발생 )
- validate : 엔티티와 테이블 정상 매핑 확인 ( SessionFactory 시작 시 객체 구성과 스키마가 다르면 예외가 발생)
이렇게 5가지의 전략이 있습니다.
일반적으로 초기 개발이나 테스트 할 떄는 create, update, create-drop을 주로 사용합니다.
그러나 스테이징, 운영 환경에서는 이 3개를 사용하면 안됩니다. 테이블 생성, 컬럼 추가 등의 작업은 데이터베이스에서 직접 하며, none이나 validate를 사용해 정상 매핑 관계만 확인해야 합니다.
여기서 스테이징 환경이란 운영환경과 유사한 환경인데, 배포하기 전 여러 테스트를 검증하는 환경입니다. ( 운영 환경은 실제 서비스를 운영하는 환경 )
'스프링 > JPA' 카테고리의 다른 글
지피지기 백전불태(부제 : JPA의 오해와 사실) (0) | 2024.10.20 |
---|---|
Cascade Type의 종류, 그리고 의도 (0) | 2023.03.22 |
@Transactional 복습 그리고 더 나아가기 (readOnly) (0) | 2023.03.11 |
count 그리고 성능과 서브쿼리(SubQuery) (1) | 2023.02.15 |
만약 대량의 데이터를 지워야 할 일이 있다면??? (JPA) (0) | 2023.01.14 |