반응형
JPA는 Persistence.xml을 이용해서 관련 정보를 관리합니다.
파일의 위치는 아래와 같이 META-INF 폴더안에 있으면 별도의 설정없이도 인식이 가능합니다.
아래 코드는 「김영한님의 자바 ORM 표준 JPA 프로그래밍」의 샘플 소스를 인용하였습니다.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="JPABOOK">
<properties>
<!-- 필수 속성 -->
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
<!-- 옵션 -->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="true" />
<property name="hibernate.id.new_generator_mappings" value="true" />
</properties>
</persistence-unit>
</persistence>
코드를 하나씩 보면
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
XML의 네임 스페이스와 JPA의 버전을 명시하는 합니다. 위 코드에서는 JPA 2.1을 명시하고 있습니다.
<persistence-unit name="JPABOOK">
JPA 설정은 persistence-unit(영속성 유닛)라는 것부터 시작을 하는데 일반적으로 연결할 데이터 베이스당 하나의 영속성 유닛을 등록하게 됩니다. persistence-unit에는 하나의 고유한 이름을 설정해야하는데, 위 코드에서는 JPABOOK를 설정한 상태 입니다.
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
각 프로퍼티에 대해서 살펴보면
- jdbc.dirver : JDBC 드라이버
- jdbc.user : 아이디
- jdbc.password : 비밀번호
- jdbc.url : DB 접속 URL
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="true" />
<property name="hibernate.id.new_generator_mappings" value="true" />
하이버네이트 속성
- hibernate.dialect : DB dialect 설정
- hibernate.show_sql : 실행한 SQL 쿼리문을 로그로 출력
- hibernate.format_sql : 실행한 SQL 쿼리문을 정렬
- hibernate.use_sql_comments : 쿼리 출력할때 주석문도 함께 출력
- hibernate.id.new_generator_mappings : JPA 표준에 맞춘 키 생성 전략을 사용
여기서 dialect에 대해서 잠시 살펴보면....
JPA 특징 중에 특정 DB에 종속되지 않는다는 점이 있는데, 이 dialect의 역할로 인해 어플리케이션에서 사용중인 DB를 다른 DB로 쉽게 변경 할수 있습니다.
하이버네이트에서 지원하는 dialect 리스트는 아래 링크에서 확인 할수 있습니다.
docs.jboss.org/hibernate/stable/orm/javadocs/org/hibernate/dialect/package-summary.html
'Development Memories > JPA' 카테고리의 다른 글
【JPA】기본 키(Primary Key) 매핑 정리 (0) | 2021.05.18 |
---|---|
【JPA】엔티티 매핑(Entity Mapping) - @Entity, @Table (0) | 2021.05.06 |
【JPA】플러시(Flush) (0) | 2021.05.04 |
【JPA】Persistence Context(영속성 컨텍스트) 란 무엇인가? (0) | 2021.04.15 |