Engineering Note

[JPA] 데이터베이스 스키마 자동 생성 - 속성 본문

Server/JPA ORM

[JPA] 데이터베이스 스키마 자동 생성 - 속성

Software Engineer Kim 2025. 6. 21. 20:35

JPA는 애플리케이션 실행시점에 스키마를 생성해주는 편리한 기능을 제공하는데, 운영서버에서는 사용하면 안되지만, 개발이나 테스트 할 때 용의할 게 사용할 수 있다.

xml을 사용한다면 persistence.xml에 보면 아래와 같은 속성 설정하는 코드가 있는데 value 값을 옵션을 설정할 수 있다.

<property name="hibernate.hbm2ddl.auto" value="create" />

 

 

옵션 설명
create 기존 테이블 삭제 후 다시 생성(DROP + CREATE)
create-drop created와 같으나 종료시점에 테이블 DROP
update 변경 내용에 대해서만 DDL 생성(Alter table 문 생성)
validate 엔티티와 테이블이 정상 매핑되었는지만 확인
none 사용하지 않음. 사실상 아무값이나 써줘도 되지만 관례상 none 사용.

 

 

 

참고로 DDL 생성기능은 애플리케이션 실행 시점에 DDL을 자동 생성할 때만 사용되고 런타임 시점에 JPA 실행 로직에는 영향을 주지 않는다. 예를 들면 @Column(nullable = false, length = 10) 이런 설정이 되어있고, DDL 설정이 validate나 none 이외의 설정으로 되어 있다면 DDL 쿼리가 생성될 텐데 이때만 생성되고 실제 null조건이나 길이 등은 JPA가 체크하지 않는다. DB가 직접 체크한다.

 

 

참고 자료 : 인프런 김영한 JPA 기본편

Comments