본문 바로가기
JPA/Core

EntityManager

by BAYABA 2021. 10. 13.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.
  3. 계속 업데이트 할 예정입니다.

목차

  1. EntityManager란?

1. EntityManager란?

  1. 엔티티를 저장하는 메모리상의 데이터베이스라고 볼 수 있습니다.
  2. 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 합니다.
  3. 하지만 EntityManagerFactory와 달리 Thread-Safe하지 않기 때문에 동시성 문제가 발생할 수 있습니다.
  • 그래서 엔티티 매니저는 스레드간에 공유를 절대로 해서는 안 됩니다.
  1. 그래서 일반적으로 EntityManager를 @PersistenceContext로 스프링이 관리해주는 방식으로 사용합니다.
  • @PersistenceContext를 사용해서 EntityManager를 주입받으면
  • 스프링에서 EntityManager를 Proxy로 감싼 EntityManager를 생성해서 주입해주기에 Thread-Safe를 보장
@PersistenceContext
private EntityManager entityManager;

출처

  1. EntityManagerFactory, EntityManager, PersistenceContext란?

'JPA > Core' 카테고리의 다른 글

JPA 프록시 (for 지연 로딩)  (0) 2021.10.10
JPA Auditing 기능  (0) 2021.10.10