Spring/JPA
JPA 데이터베이스 자동 생성
묠니르묘묘
2022. 2. 23. 00:55
JPA는 데이터베이스 스키마를 자동 생성하는 기능을 지원한다.
그래서 DB에 미리 만들어 놓지 않아도 JPA를 통해 코드를 작성해서 자동으로 생성시켜줘서 편하기도 하다.
클래스의 매핑 정보를 보면 어떤 테이블에 어떤 컬럼을, 어떤 제약조건 등을 사용하는지 알 수 있다.
JPA는 매핑 정보와 DB 방언을 사용해서 DB 스키마를 생성한다.
📝 사용 방법
// xml 방식 - persistence.xml
<property name="hibernate.hbm2ddl.auto" value="옵션">
// application.properties 방식
spring.jpa.hibernate.ddl-auto=옵션
// application.yml 방식
spring:
jpa:
hibernate:
ddl-auto: 옵션
이 속성을 추가하면 애플리케이션 실행 시점에 DB 테이블을 자동으로 생성한다.
📝 속성 옵션
🧐 hibernate.hbm2ddl.auto 랑 hibernate.ddl-auto 의 차이점
(편의상 hbm2ddl.auto 와 ddl-auto로 말하겠습니다.)
stackoverflow(스택오버플로우)에서 찾아본 결과 다음과 같다.
ddl-auto 속성은 hbm2ddl.auto라는 속성으로 hibernate에 전달될 값을 지정하는 방법이다.
즉, hbm2ddl.auto 속성에 대한 바로가기라고 보면된다.
Spring Boot 공식문서를 찾아보면 다음과 같다.
JPA 데이터베이스 자동생성 방법을 설명하는데 ddl-auto 방식으로 예시를 적어놨다.
그 밑에 메모로 다음과 같은 문구가 적혀있다.
Hibernate's own internal property name for this is hibernate.hbm2ddl.auto.
이것에 대한 하이버네이트가 소유한 내부 속성 이름은 hibernate.hbm2ddl.auto 이다.