Spring/JPA

JPA 프로젝트 생성

Ynghan 2023. 2. 18. 16:39

라이브러리를 넣는 것이 중요!

pom.xml

<dependencies> 사이에 어떤 라이브러리를 넣을지 정함.

    <dependencies>
        <!-- JPA 하이버네이트 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.3.10.Final</version>
        </dependency>
        <!-- H2 데이터베이스 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.199</version>
        </dependency>
    </dependencies>

실무에서 라이브러리 버전을 선택할 경우 JPA를 사용할 경우 스프링과 함께 사용하는 경우가 많기 때문에

스프링과 잘 연동되는 버전을 선택하는 것이 바람직하다.

 

또한 버전은 실제 설치하는 버전과 일치시키는 것이 좋다.

 

JPA 설정

JPA를 사용하기 위해서는 몇 가지 설정 파일을 넣어줘야 한다.

1) JPA 설정 파일

 - 위치 : src/main/resources/META-INF/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="hello">
        <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.hbm2ddl.auto" value="create" />
        </properties>
    </persistence-unit>
</persistence>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>

JPA는 특정 단어에 종속적이지 않도록 설계됨. 그래서 단어에 맞는 설정을 해줘야함.

위의 코드는 h2 데이터베이스에 맞는 방언을 설정하여 사용함.

하이버네이트는 40가지 이상의 데이터베이스 방언을 사용함.