본문 바로가기

spring/JPA

(2)
EntityManager와 EntityManagerFactory에 대해서 JPA를 공부하다보면 EntityMananger를 알게되는데 이것이 무엇을 하는지 잘 모르고 사용을 했었다. 이번에 한번 역할을 알아보고 어떤 기능을 하는지 알아보자. EntityManager 의 역할? 엔티티를 관리하는 사람이라는 요놈을 이해화기 전에 엔티티가 무엇인지 알아야한다. 엔티티는 데이터 베이스와 연관이 깊은 용어이다. 엔티티는 유의미한 하나의 데이터 집합이라고 생각하면 된다. 예를 들어서 학생의 정보가 필요하면 학생의 정보를 담은 학생 엔티티를 조회하면 되고 수업의 정보가 필요하면 수업과 관련된 데이터를 담은 수업 엔티티를 조회하면되는 것이다. 애플리케이션에서 이런 데이터를 관리할 때, 객체 형태로 생성해서 관리하고 있으며 이들을 관리하는 객체가 EntityManager인 것이다. 역할은 무..
[JPA] 영속성 컨테이너 관련 의문점. 엔티디의 생명주기가 어떻게 되는가? new : 식별자(id)가 존재하지 않은 새로운 엔티디 Managed : 영속성 컨테이너에 저장된 엔티디로서 무결성을 지니고 있다. Detached : 식별자(id)가 존재하는 엔티디로서 무결성이 없다. Removed : 삭제된 인스턴스 영속성 컨테이너는 쓰레드끼리 공유되는 객체인가? 영속성 컨테이너는 공유 자원이 아니다. 영속성 컨테이너는 하나의 요청(쓰레드)에서 사용하는 1차 캐시로서의 역할을 한다. 어플리케이션 단에서 공유되는 캐시 자원이 있는데 이 자원은 EntityManagerFactory를 통해서 얻을 수 있다. EntityManagerFactory를 통해서 2차 캐시를 얻을 수 있다. 이때 2차 캐시는 어플리케이션 단에서 공유되는 캐시이다. [JPA] 트랜..