기본편(2) - JPA 시작

7965 단어 JPAJPA

JPA 설정하기

  • JPA 설정파일
    - resources/META-INF/persistence.xml 위치
    - persistence-unit name으로 이름 지정, emf 호출 시 사용
<?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>
  • 데이터베이스 방언 - Dialect
    각각의 데이터베이스가 제공하는 SQL문법과 함수는 조금씩 다르다.

hibernate는 40가지 이상의 데이터베이스 방언을 지원한다.
hibernate.dialect 속성에 지정하여 사용

JPA 구동 방식

public class JpaMain {

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");

        EntityManager em = emf.createEntityManager();
        EntityTransaction tx = em.getTransaction();
    }
}
  1. META-INF/persistence.xml에서 설정 정보를 조회한다.

  2. 설정 정보에 따라 EntityManagerFactory를 생성한다.

  3. factory를 이용해 EntityManager을 생성하여 DB를 관리한다.


주의사항
• 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유한다.

• 엔티티 매니저는 쓰레드간에 공유X (사용하고 버려야 한다).

• JPA의 모든 데이터 변경은 트랜잭션 안에서 실행

좋은 웹페이지 즐겨찾기