두 손끝의 창조자

현재 스레드의 EntityManager 가져오기 본문

JPA

현재 스레드의 EntityManager 가져오기

codinglog 2022. 7. 4. 14:53

EntityManagerFactory는 DataSource와 연관되어 있다. 스프링 환경에서 사용하는 경우 EntityManagerFactory는 빈으로 등록해서 사용하는게 효율적이라 등록 후 사용중이라면 ApplicationContext에서 Factory를 가져올 수 있다.

@Transactional 로 트랜잭션 관리를 한다면

@PersistentContext 애노테이션으로 쉽게 현재 스레드의 EntityManager를 가져올 수 있다.

@PersistentContext 
EntityMager em;

그러나 트랜젝션을 직접 관리한다면 아래 방법으로 가져올 수 있다.

EntityManager em = EntityManagerFactoryUtils.getTransactionalEntityManager(emf);
반응형
Comments