본문으로 바로가기

EntityManagerFactory와 EntityManager

category Back-End/JPA 2018. 11. 23. 22:00
반응형

EntityManagerFactory (엔티티매니저팩토리)

일반적으로 데이터베이스를 하나만 사용하는 애플리케이션은 EntityManagerFactory를 하나만 생성한다. 
META/INF/persistence.xml 에 설정한 정보를 기반으로 다음과 같은 코드로 생성할 수 있다. 

EntityManagerFactory emf = Persistence.createEntityManagerFactory(설정한이름);

EntityManagerFactory는 EntityManager를 생성하는 Factory클래스로 최초 생성 시 커넥션풀 생성을 포함한 여러 작업들을 수행하기때문에 생성비용이 비싸고, 때문에 애플리케이션 전반적으로 하나의 인스턴스를 공유하도록 설계되어있다.

EntityManager (엔티티매니저)

엔티티를 저장 / 수정 / 삭제 / 조회 하는 등 엔티티 관련된 모든 일을 처리할 때 직접적으로 사용되는 클래스이다. 
JPA 를 사용하여 개발할 땐 바로 이 EntityManager를 데이터베이스라고 생각하고 처리하면 된다. 
    
EntityManager는 EntityManagerFactory를 통해서 다음과 같은 코르로 생성할 수 있다.

EntityManager em = emf.createEntityManager();

EntityManager는 DB 연결이 필요한 시점에 커넥션풀에서 커넥션을 취득하는데, 이 때문에 스레드간 절대 공유되지 않도록 개발 시 유의해야한다.


반응형

'Back-End > JPA' 카테고리의 다른 글

영속성 컨텍스트 (Persistence Context) 란 (2)  (0) 2018.11.25
영속성 컨텍스트 (Persistence Context) 란 (1)  (0) 2018.11.25
JPA 기본적인 CRUD 해보기  (0) 2018.10.03
기본적인 JPA 설정 방법  (0) 2018.10.03
JPA / ORM 이란  (0) 2018.10.03