두 손끝의 창조자

Spring에서 EntityManager 가져오기 본문

Spring

Spring에서 EntityManager 가져오기

codinglog 2021. 5. 28. 11:04

EntityManagerFactory 는 persistence.xml 에 정의한 persistence unit 당 하나를 만든다. 팩토리는 애플리캐이션 레벨에 하나만 존재하면 되고 이 팩토리를 이용해서 EntityManager를 만들어서 데이터 처리를 하면된다.

스프링에는 트랜잭션을 ThreadLocal 을 이용해서 관리하고 있는데 한번 만들어진 EntityManager를 같은 스레드 내에서 가져오고 싶을 때 편리한 유틸리티 클래스를 제공한다.

EntityManagerFactoryUtils 이 그것이다.

getTransactionalEntityManager  메소드에 EntityManagerFactory를 파라미터로 전달해서 현재 스레드에서 동작중인 EntityManager 를 가져온다. 여러 클래스와 메소드를 넘나들며 데이터 작업을 해야하는 경우 EntityManager 를 파라미터로 넘겨가며 할 필요없이 스프링이 관리하는 트랜잭션 매니저로 편리하게 사용하자.

반응형
Comments