Back-End/JPA(자바 ORM 표준 기술)

[JPA][영속성 관리] - 엔티티 매니저 팩토리와 엔티티 매니저

얄루몬 2022. 5. 26. 16:22

📖본 포스팅은 '자바 표준 ORM 기술 JPA - 김영한'님의 책을 보고 작성되었습니다.


목차
1. JPA 제공 기능
2. 엔티티 매니저 팩토리
3. 엔티티 매니저

JPA 제공 기능

  • 엔티티와 테이블을 매핑하는 설계 부분
  • 매핑한 엔티티를 실제 사용 부분
    • 엔티티 매니저 팩토리와 엔티티 매니저로 어떻게 사용하는지 알 수 있다.

엔티티 매니저 팩토리

데이터 베이스를 하나만 사용하는 애플리케이션은 일반적으로 엔티티 매니저 팩토리를 하나만 생성한다.

엔티티 매니저 팩토리 생성

EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
  • 공장을 만드는 것에 비유하며 이 경우는 비용이 매우 많이 든다.
  • 엔티티 매니저 팩토리를 생성했다면 이제 필요할 때마다 엔티티 매니저를 엔티티 매니저 팩토리에서 생성해서 사용하면 된다.

엔티티 매니저 팩토리?

  • 엔티티 매니저 팩토리는 말 그대로 엔티티 매니저를 만드는 공장이다.
  • 만드는데 비용이 크다. 그렇기 때문에 애플리케이션 전체에서 공유하도록 설계되어 있다.
  • 엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하다.

엔티티 매니저

  • 엔티티를 관리하는 관리자다.
  • 개발자 입장에선 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스로 생각하면 된다.
  • 엔티티 매니저는 저장, 수정, 삭제, 조회 등의 엔티티와 관련된 모든 일을 처리한다.
  • 엔티티 매니저는 스레드가 동시에 접근하면 동시성 문제가 발생하기 때문에 스레드 간에 절대 공유하면 안 된다.