엔티티 매니저 생성 과정

 

 

- 엔티티 매니저 팩토리 생성

 

JPA응 시작하려면 첫번째로 persistance.xml의 설정 정보를 사용하여 엔티티 매니저 팩토리를 생성해야 한다. 이때 사용하는 클래스로 Persistance 를 사용하는데 이 클래스는 엔티티 매니저 팩토리를 생성해서 JAP를 사용할 수 있게 준비해준다.

EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");

위와 같이 하면 META-INF/persistance.xml 에서 이름이 "jpabook"인 영속성 유닛 persistance-unit을 찾아서 엔티티 매니저 팩토리를 생성한다. 엔티티 매니저 펙토리를 생성하는 비용은 매우 크므로 애플리케이션 전체에서 딱 한번만 생성하고 공유해서 사용해야 한다.

 

 

 

- 엔티티 매니저 생성

 

EntityManager em = emf.createEntityManager();

엔티티 매니저 팩토리에서 앤티티 매니저를 생성한다. JPA의 기능 대부분은 엔티티 매니저가 제공한다. 대표적으로 엔티티 매니저를 사용해서 엔티티를 데이터베이스에 등록/수정/삭제/조회할 수 있다. 엔티티 매니저는 내부에 데이터소스를 유지하면서 데이터베이스와 통신하므로, 엔티티 매니저를 가상의 데이터베이스로 생각할 수 있다. 엔티티 매니저는 데이터베이스 커넥션과 밀접한 관계가 있으므로 스레드간에 공유하거나 재사용하면 안된다.

 

 

 

- 종료

 

사용이 끝난 엔티티 매니저와 엔티티 매니저 팩토리는 다음처럼 반드시 종료해야 한다.

em.close();		// 엔티티 매니저 종료
emf.close();		// 엔티티 매니저 팩토리 종료

 

 

 

- 트랜잭션 관리

 

JPA를 사용하면 항상 트랜잭션 안에서 데이터베이스를 변경해야 한다. 트랜잭션없이 데이터를 변경하면 예외가 발생한다.

 

'develop > JPA, Hibernate' 카테고리의 다른 글

엔티티 매핑, 기본키 할당 전략  (0) 2019.12.16
엔티티 매니저 등록/수정/삭제/조회 정리  (0) 2019.11.24
데이터베이스 방언  (0) 2019.10.19
JPQL 이란? (querydsl)  (0) 2019.10.12
Hibernate 란?  (0) 2019.09.30

+ Recent posts