Spring/JPA

JPA 영속성 관리 - 정리

묠니르묘묘 2022. 2. 22. 00:07

엔티티 매니저 팩토리와 엔티티 매니저

영속성 컨텍스트 소개

영속성 컨텍스트 특징

플러시란?

준영속 상태와 병합

 

JPA 영속성 관리의 마지막 글이다.

이번 장에서는 위 내용에 대해 정리를 해보자.

 

 


EntityManagerFactory와 EntityManager

엔티티 매니저는 엔티티 매니저 팩토리에서 생성한다.

자바를 직접 다루는 J2SE 환경에서는 엔티티 매니저를 생성하면 그 내부에 영속성 컨텍스트도 같이 생성된다.

엔티티 매니저를 통해 영속성 컨텍스트를 접근할 수 있다.

 

 

영속성 컨텍스트 (Persistence Context)

애플리케이션과 DB 사이에서 객체를 보관하는 가상 DB같은 역할을 한다.

영속성 컨텍스트 덕분에 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 쓰기 지연, 변경 감지(Dirty Checking), 지연 로딩 기능이 가능하다.

 

영속성 컨텍스트가 관리(저장)하는 엔티티를 영속 상태의 엔티티라 한다.

영속성 컨텍스트가 관리하지 못하면 준영속 상태의 엔티티로 된다. 이 때 영속성 컨텍스트의 기능을 사용할 수 없다.

 

영속성 컨텍스트에 저장한 엔티티는 플러시 시점에 DB에 반영된다.

일반적으로 트랜잭션을 커밋할 때 영속성 컨텍스트가 플러시된다.

 

플러시(flush)는 영속성 컨텍스트의 변경 내용을 DB에 반영하는 것이다.

 

 


자바 ORM 표준 JPA 프로그래밍 / 김영한 지음 / 에이콘출판주식회사 출판

자바 ORM 표준 JPA 프로그래밍 - 기본편 / 김영한 / 인프런 강의