[JPA] 2. JPA의 내부는 어떻게 생겼을까?

garam0410·2022년 1월 11일
0

JPA

목록 보기
2/5

2. JPA의 내부는 어떻게 생겼을까?


JPA의 구조


클래스


EntityManager

  • 인터페이스

  • 객체에 대한 영속성 관리 작업을 진행

  • Query 인스턴스를 생성하는 팩터리 처럼 작동


EntityManagerFactory

  • EntityManager 클래스의 팩토리 클래스

  • EntityManager 클래스의 인스턴스를 생성 및 관리

  • 사용시에 딱 한번만 생성하고 공유해서 사용

  • EntityManager를 찍어내는 공장이므로 비용이 상당이 큼


EntityTransaction

  • EntityManager와 일대일 관계

  • 각각의 EntityManager들의 작업은 EntityTransaction 클래스에 의해서 유지


Persistence

  • EntityManagerFactory 인스턴스를 생성하는 정적(static) 메소드 가지고 있음

Entity

  • 영속 객체

  • 실제 데이터베이스에 기록될 객체


Query

  • 인터페이스로서 각각의 JPA 벤더에 의해 구현

  • 각 기준에 충족하는 관계형 객체를 얻음


Persistence가 EntityManagerFactory 인스턴스를 생성한다. 생성된 EntityManagerFactory가 EntityManager를 여러개 생성할 수 있다. 이 때, EntityManagerFactory와 EntityManager는 일대다 관계이다. 각각의 EntityManager는 EntityTransaction 인스턴스가 작동하는데 이때, EntityManager와 EntityTransaction은 일대일 관계이다. EntityManager는 여러개의 Query 객체를 관리하기 때문에 일대다관계이다. EntityManager는 여러개의 Entity 객체를 관리한다. 따라서 EntityManager와 Entity 객체는 일대다 관계이다.


0개의 댓글