Notice
Recent Posts
Link
Recent Comments
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

지니의 개발로그

JPA ddl-auto 종류 본문

내일배움캠프

JPA ddl-auto 종류

지니♥︎ 2024. 6. 19. 23:23

🚩 20240619 TIL

 

🟢 none

 

  • DDL을 자동으로 생성하지 않는다.
  • Hibernate는 데이터베이스 스키마에 어떤 변경도 하지 않는다.

 

  • 프로덕션 환경에서 사용
  • 개발자가 수동으로 데이터베이스 스키마를 관리하는 경우 적합

 

 


🟢 validate

 

  • 기존 데이터베이스 스키마가 엔티티 매핑과 일치하는지 검증한다.
  • Hibernate는 데이터베이스 스키마에 어떤 변경도 하지 않는다.

 

  • 데이터베이스 스키마와 엔티티 정의 간 불일치를 찾고 싶을 때 사용
  • 주로 프로덕션 환경에서 사용

 


🟢 update

 

  • 엔티티와 매핑된 테이블을 업데이트한다.
  • 새로운 필드나 테이블을 추가하지만, 기존 데이터를 보존한다.
  • 변경된 부분만 반영

 

  • 개발 중에 데이터 손실 없이 스키마를 업데이트하고자 할 때 사용

 

 


🟢 create

 

  • 기존 테이블을 삭제하고 엔티티에 맞추어 새로운 테이블을 생성한다.
  • DROP + CREATE 개념
  • 기존 데이터는 삭제된다.

 

  • 개발 환경에서 초기 설정 시
  • 데이터베이스 스키마를 전면 재구성할 때 사용

 

 


🟢 create-drop

 

  • create와 동일하게 동작하지만, 애플리케이션 종료 시점에 테이블을 삭제
  • 종료시점에 테이블을 DROP 

 

  • 테스트 환경에서 사용
  • 애플리케이션 종료 후 모든 데이터를 삭제하고 초기상태로 되돌릴 때 사용

 

 


 

🔵 정리

설정 값들은 개발, 테스트, 프로덕션 환경 등 사용 환경과 목적에 따라 적절히 선택하여 사용 할 것.

none DDL을 자동으로 생성하지 않습니다.
validate 기존 스키마와 엔티티 매핑을 검증합니다.
데이터베이스에 어떤 변경도 하지 않습니다.
update 엔티티와 매핑된 테이블을 업데이트합니다.
데이터는 보존되지만, 스키마에 맞추어 필요한 변경을 합니다.
create 기존 테이블을 삭제하고 엔티티에 맞추어 새로운 테이블을 생성합니다.
데이터는 삭제됩니다.
create-drop 애플리케이션 종료 시점에 테이블을 삭제하는 점을 제외하고 create와 동일하게 동작합니다.

 

'내일배움캠프' 카테고리의 다른 글

Annotation type expected 오류 : @Column 어노테이션  (0) 2024.07.12
JDBC란  (0) 2024.06.18
ORM(Object-Relational Mapping) 프레임워크란?  (0) 2024.06.18
Hibernate이란?  (0) 2024.06.14
메모리 영역의 분류  (1) 2024.06.14