-
<Spring JPA> 1.9 데이터베이스 스키마 자동 생성JPA 2020. 4. 18. 19:02
JPA 는 데이터베이스는 애플리케이션 실행 시점에 자동생성해준다. 이렇게만 쓰면 무조건 생성해주는 것 같지만 그건 아니다. 설정이 되어 있는 경우에만 가능하다. JPA 는 Entity 에 설정해놓은 그대로, 설정값에 지정해놓은 데이터베이스 방언대로 테이블 생성쿼리를 날려준다. 이 방법은 개발 시에는 굉장히 유용하나, 운영 서버에 적용해놓았다가 데이터가 전부 날라가는 낭패를 볼 수도 있으니 개발 환경에서만 사용하는 것을 권장한다.
설정값에 지정해놓는 값은 hibernate.hbm2ddl.auto 를 사용한다. 여기에 create, create-drop, update, validate, none 을 설정할 수 있다. 이름만 봐도 느낌이 온다. create 는 생성이다. 무조건 생성이라서 원래 있던 것도 다 날린다. create-drop 은 create 기능을 하고 그거에 더해서 drop 까지 한다. update 는 변경이 있는 경우 update 를 하고 validate 는 엔티티와 테이블이 같은 지만 확인해 준다. none 은 이 기능을 사용하지 않는 것이다. 이 설정도 있기 때문에 무조건 해준다고는 볼 수 없다.
또한 각각의 필드 값에 어떤 어노테이션을 적용해놓았으냐에 따라 DDL 에 영향을 준다. @Column 을 통해서 nullable 과 length 등의 제약 조건을 줄 수 있다.
반응형'JPA' 카테고리의 다른 글
<Spring JPA> 1.11 기본키 매핑 (0) 2020.04.21 <Spring JPA> 1.10 필드와 컬럼매핑 (0) 2020.04.18 <Spring JPA> 1.8 객체와 테이블 매핑 (0) 2020.04.14 <Spring JPA> 1.7 준영속 상태 (0) 2020.04.14 <Spring JPA> 1.6 플러시 (0) 2020.04.14