카테고리 없음

JPA - 동작원리 및 영속성 컨텍스트

myHyem 2020. 11. 12. 13:24

지난번 포스팅에 이어서

JPA 동작 원리에 대하여 정리해볼까 합니다

주관적인 견해가 있을 수 있으므로 너무 신뢰하지 않으셨으면 합니다

 

 


 

JPA의 기본 동작 요약

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)

 

  1. 설정 파일을 통해서 JPA를 설정한다
  2. EntityManagerFactory를 생성한다
  3. EntityManager를 생성하여 Entity를 영속성 컨텍스트(Persistence Context)를 통해 관리한다

EntityManagerFactory

  • EntityManager를 생성하는 객체입니다
  • 하나의 EntityManagerFactory는 애플리케이션 전체에서 공유됩니다 - 싱글톤

EntityManager

  • Entity를 관리하는 객체입니다
  • 동시성의 문제가 발생할 수 있으니 쓰레드 간에 공유하면 안 됩니다(요청:객체 = 1:1)
  • 모든 데이터 변경은 트랜잭션 안에서 이루어져야 합니다

Entity

  • EntityManager가 관리하는 객체로 테이블과의 커넥션을 관리합니다
  • 반드시 테이블과 관련된 필드만을 가져야 하는 것은 아닙니다

영속성 컨텍스트 ( Persistence Context )

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)

 

  • 형체가 없는 논리적인 개념입니다. 위의 사진에서는 Managed (Entity)를 감싸는 공간이 영속성 컨텍스트 입니다
  • Entity의 생명주기를 관리
  • 1차 캐시라는 메모리 공간으로 Entity를 관리하므로 중복 쿼리를 최소화하고 Entity의 동일성을 보장해줍니다
  • 쓰기 지연, 변경 감지, 지연 로딩으로 성능 최적화에 유리합니다

 



이 정도로 정리해볼 수 있을 것 같습니다

제가 맞게 정리했는지 모르겠네요