JPA

[JPA 2] JPA 설정

snowkit 2022. 2. 22. 14:50

pom.xml

  • 다음 dependency 추가
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-entitymanager</artifactId>
      <version>5.3.10.Final</version>
    </dependency>
    
    <!-- 예제에선 H2 DB 1.4.199버전 사용 -->
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.4.199</version>
    </dependency>

persistence.xml

  • 프로젝트/src/main/resources/META-INFpersistence.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="persistence_name">
    <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.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>
  • javax.persistence.jdbc.driver: DB 드라이버 클래스
  • javax.persistence.jdbc.user: DB username
  • javax.persistence.jdbc.password: DB password
  • javax.persistence.jdbc.url: DB URL
  • hibernate.hbm2ddl.auto: create, create-drop, update, validate, none (상용 환경에선 validate 사용)
  • hibernate.show_sql: JPA가 생성한 SQL 출력
  • hibernate.format_sql: JPA가 생성한 SQL을 사람이 보기 편하도록 indent format 적용
  • hibernate.use_sql_comments: JPA가 생성한 SQL에 주석 표시

'JPA' 카테고리의 다른 글

[JPA 6] 연관관계 - @ManyToOne  (0) 2022.03.10
[JPA 5] 영속성 컨텍스트  (0) 2022.02.22
[JPA 4] JPA 기본 사용법  (0) 2022.02.22
[JPA 3] JPA Entity  (0) 2022.02.22
[JPA 1] JPA란?  (0) 2022.02.22