영속성(Persistence)
JPA의 영속성 컨텍스트에 대해 알아보기 전 우선 영속성이라는 단어부터 알아보자.
1
2
컴퓨터 공학에서 지속성(Persistence)은 프로세스가 생성했지만 별개로 유지되는 상태의 특징 중 한 가지이며,
별도의 기억 장치에 데이터를 보존하는 것을 목적으로 한다. [위키백과]
한마디로 DB와 같은 별도의 저장소에 데이터를 영구적으로 저장하는 것을 말한다.
영속성 컨텍스트(Persistence Context)
JPA에서 영속성 컨텍스트는 가장 중요한 개념 중 하나로 자주 언급될 것이다. JPA에서는 Entity
라는 특별한 객체를 관리하는데 영속성 컨텍스트란 이러한 엔티티를 영구 저장하는 환경을 의미한다.
1
2
3
4
Entity는 JPA에서 관리하는 특별한 객체를 말한다. Entity는 하나의 테이블에 대응되도록 설계되고
JPA는 Entity를 통해 DB에서 데이터를 조회, 저장, 수정, 삭제한다.
그리고 이러한 Entity 객체들을 관리하는 역할을 하는 것이 'EntityManager' 이다.
EntityManager와 영속성 컨텍스트
EntityManager
는 위에서 언급하였듯 Entity
객체들을 관리하는 역할을 한다. JPA에서는 EntityManager
를 통해 Entity
들을 영속성 컨텍스트에 저장한다. 그리고 이렇게 영속성 컨텍스트에 저장 된 Entity
는 영속성 컨텍스트에 관리되는 상태가 된다.(영속상태-managed)
(영속성 컨텍스트는 논리적인 개념으로 EntityManager를 통해 영속성 컨텍스트에 접근한다.)
1
EntityManager.persist(entity); //EntityManager를 통해 entity를 영속성 컨텍스트에 저장
JPA는 영속성 컨텍스트가 관리하는 영속상태의 Entity
들을 DB에 반영하여 데이터를 저장, 수정, 삭제 한다.
Comments powered by Disqus.