T_era
JPA 관련 설정 본문
persistence.xml 설정 파일 정리
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="test"> <class>org.entity.Tutor</class>
<properties>
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="jakarta.persistence.jdbc.user" value="root"/>
<property name="jakarta.persistence.jdbc.password" value="1111"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sparta"/>
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> </properties>
</persistence-unit>
</persistence>
주요 설정 항목 요약
- <persistence-unit name="test">: EntityManagerFactory 생성 시 사용될 이름 정의. 현재 값은 "test"임.
- <class>org.entity.Tutor</class>: JPA가 관리할 Entity 클래스 명시. 현재 org.entity.Tutor 클래스를 Entity로 등록함.
- <properties>: JPA 구현체(여기서는 Hibernate로 추정)의 상세 설정 정의.
- jakarta.persistence.jdbc.driver: 사용할 JDBC 드라이버 클래스 명시. MySQL Connector/J 드라이버를 사용함.
- jakarta.persistence.jdbc.user: 데이터베이스 접속 사용자 계정 설정. "root"로 설정됨.
- jakarta.persistence.jdbc.password: 데이터베이스 접속 비밀번호 설정. "1111"로 설정됨.
- jakarta.persistence.jdbc.url: 데이터베이스 접속 URL 설정. 로컬 MySQL 서버의 "sparta" 스키마에 접속함.
- hibernate.hbm2ddl.auto: 스키마 자동 생성 전략 설정. "create"로 설정되어 애플리케이션 실행 시 기존 테이블을 삭제하고 새로 생성함.
- hibernate.show_sql: Hibernate가 실행하는 SQL 쿼리를 콘솔에 출력할지 여부 설정. "true"로 설정되어 SQL 구문 확인이 가능함.
- hibernate.format_sql: 콘솔에 출력되는 SQL 쿼리를 보기 좋게 포맷할지 여부 설정. "true"로 설정되어 가독성을 높임.
- hibernate.use_sql_comments: SQL 쿼리에 주석을 사용할지 여부 설정. "true"로 설정됨.
- hibernate.jdbc.batch_size: JDBC 배치 사이즈 설정 (현재 주석 처리됨). 활성화 시 지정된 개수만큼 SQL 구문을 묶어서 실행하여 성능 향상을 도모할 수 있음.
hibernate.hbm2ddl.auto
|
create
|
기존 테이블을 삭제(DROP) 후 다시 생성(CREATE)한다.
|
|
create-drop
|
DROP 후 CREATE 하고 종료시점에 테이블을 삭제(DROP)한다. 테스트 시 사용
|
|
update
|
변경된 사항만 DDL에 반영한다.
|
|
validate
|
Entity와 테이블이 정상적으로 매핑 되었는지 확인한다. 실패 시 예외 발생
|
|
none
|
속성을 사용하지 않는다.
|
자동으로 생성된 DDL은 실제 운영환경이 아닌 개발 환경에서만 사용한다. 필요한 경우에는 자동으로 생성된 DDL을 직접 수정 후 적용한다.
실무에서는 validate 혹은 none 을 사용하고 개발 단계에서는 상황에 맞게 사용하면 된다.
'Programing > Spring' 카테고리의 다른 글
| JPA 필드 매핑 상세 정리 (0) | 2025.05.15 |
|---|---|
| JPA @Entity와 @Table 어노테이션 정리 (0) | 2025.05.15 |
| 변경 감지(Dirty Checking) (0) | 2025.05.15 |
| 영속성 컨텍스트 - JPA 핵심 개념 : 동일성 보장 및 쓰기 지연 (0) | 2025.05.15 |
| 영속성 컨텍스트 - Entity 생명주기 및 캐시 (0) | 2025.05.15 |