티스토리 뷰
테이블을 먼저 생성하고, 그 다음 엔티티를 생성했다.
하지만 데이터베이스 스키마 자동생성을 통해 엔티티만 만들고 테이블은 자동 생성 할 수 있다.
★ 데이터베이스 스키마 자동 생성
- JPA는 이 매핑 정보와 데이터베이스 방언을 사용해서 데이터베이스 스키마를 생성한다.
※ 데이터베이스 방언이란?
- SQL 표준을 지키지 않거나 특정 데이터베이스만의 고유한 기능을 '방언'이라고 한다.
JPA는 특정베이스에 종속적이지 않은 기술. 따라서 다른 데이터베이스로 교체 가능하다.
만약 종속적이면 데이터베이스 교체하기 어렵다.
따라서, 하이버네이트 등의 JPA 구현체들은 다양한 데이터베이스 방언 클래스를 제공한다.
☆ 스키마 자동 생성하는 법

persistence.xml 에 다음 속성을 추가한다.
<property name="hibernate.hbm2ddl.auto" value="create" />
결과는 애플리케이션 실행 시점에 데이터베이스 테이블을 자동으로 생성한다.
☆ 콘솔에 실행되는 테이블 생성 DDL을 출력하는 법
테이블이 자동으로 잘 생성되었는지 확인하기 위해 콘솔에 나타나는 법은
<property name="hibernate.show_sql" value="true" />
이 속성을 true로 설정해주면 된다.


실행된 결과를 보자. 기존 테이블을 삭제하고 다시 생성한 것을 볼 수 있다.
- 스키마 자동 생성 기능의 장점은 개발자가 테이블을 직접 생성하는 수고를 덜 수 있다는 것이다.
하지만 자동 생성 기능이 만든 DDL은 운영 황경에서 사용할 만큼 완벽하지 않으므로
개발 환경에서 사용하거나 매핑을 어떻게 해야 하는지 참고하는 정도로만 사용하는 것이 좋다고 한다.
☆ hibernate.hbm2ddl.auto 속성 정리
| 옵션 | 속성 |
| create | 기존 테이블 삭제 후 새로 생성. DROP + CREATE |
| create-drop | create 속성에 더하여 애플리케이션 종료 시 생성한 DDL 을 제거한다. DROP + CREATE+DROP |
| update | 데이터베이스 테이블과 엔티티 매핑정보를 비교하여 변경 사항만 수정한다. |
| validate | 데이터베이스 테이블과 엔티티 매핑정보를 비교하여 차이가 있을 시 경고를 남기고 애플리케이션을 실행하지 않는다. 이 설정은 DDL을 수정하지 않는다. |
| none | 자동 생성 기능을 사용하지 않으려면 hibernate.hbm2ddl.auto 속성 자체를 삭제하거나 유효하지 않은 옵션 값을 주면 된다. |
'차곡차곡 > Java' 카테고리의 다른 글
| [JAVA] 엔티티 매핑 (4) - 기본 키 매핑 (0) | 2022.07.23 |
|---|---|
| [JAVA] 엔티티 매핑 (3) - DDL 생성 기능 (0) | 2022.07.23 |
| [Java] 엔티티 매핑 (1) - @Entity / @Table / 그 외 다양한 매핑 (0) | 2022.07.23 |
| [Java] 영속성 관리 - (5) 준영속 (0) | 2022.07.17 |
| [JAVA] JPA 영속성 관리 (4) - 플러시 (flush) (0) | 2022.07.17 |
- Total
- Today
- Yesterday
- pip 설치 오류
- JPA
- DDL 생성 콘솔 출력
- React
- JPQL이란
- JPA애플리케이션개발코드
- fragment태그
- 콘솔 창 한글 깨짐
- 데이터베이스 스키마 자동 생성
- 엔티티매니저팩토리
- 리액트 이벤트 처리하기
- 로제 파스타 맛집
- 풍기역맛집
- Counter 만들기
- react counter
- 토마호크 맛집
- 커틀렛 맛집
- 영주역 맛집
- React를 이용한 Counter 만들기
- 영주 한우
- intellij 한글 깨짐
- tick 만들기
- 영속성 관리
- 버튼누르면전구이미지변하기
- JPA 기본키 매핑 전략
- JPA라이브러리
- 리액트 엘리먼트 렌더링하기
- 엘리먼트 렌더링
- 온량 서울숲점
- 꾸덕꾸덕 파스타 맛집
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
