- 엔티티 매니저 팩토리 생성
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 |