JPA EntityManager

김득회·2022년 6월 2일
0

JPA

목록 보기
4/11

엔티티 메니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다.
=> 엔티티를 관리하는 관리자

엔티티 메니저는 개발자 입장에서 엔티티를 저장하는 가상의 DB라고 생각하면 된다.

엔티티 매니저 팩토리

DB를 하니만 사용하는 애플리케이션은 EntityManagerFactory를 하나만 생성한다.
=> 비용이 많이드는 작업이라 하나만 생성해서 같이 사용한다.

 EntityFactoryManager emf = Persistence.createEntityManagerFactory("test")	

Persistence.createEntityManagerFactory("test")를 호출하면
META-INF/persistence.xml에 있는 정보를 바탕으로 EntityFactoryManager를 생성

이후 필요할 때마다 엔티티 팩토리 메니저에서 엔티티 매니저를 생성하면된다.
=> 엔티티 매니저 생성비용은 거의 들지 않는다.

엔티티 팩토리 매니저 : 여러 스레드가 동시에 접근해도 안전
엔티티 매니저 : 여러 스레드가 동시에 접근하면, 동시성 문제가 발생 (절대 공유 X)

엔티티 매니저는 DB연결이 꼭 필요한 시점까지 커넥션을 얻지 않는다.

  • 트랜젝션을 시작할 때 커넥션 획득
  • 하이버네이트를 포함한 JPA 구현체들은 엔티티 팩토리 매니저를 생성할 때 커넥션 풀을 만든다.
profile
감성 프로그래머 HoduDeuk

0개의 댓글