Spring/자바 ORM 표준 JPA프로그래밍

영속성 컨텍스트

hyun-1200 2022. 5. 5. 18:37

JPA에서 가장 중요한 두가지 

1. 객체와 관계형 DB 매핑하기

2. 영속성 컨텍스트

 

 

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

 

영속성 컨텍스트

  • JPA를 이해하는데 가장 중요한 용어
  • "엔티티를 영구적으로 저장하는 환경" 이라는 뜻
  • EntityManager.persist(entity) ;  
  • 엔티티매니저를 통해서 영속성 컨텍스트에 접근한다. 

엔티티의 생명주기

  • 비영속 ( new)  : 영속성 컨텍스트와 전혀 관계없는 새로운 상태 
  • 영속 (managed)  : 영속성 컨텍스트에서 관리되는 상태 
  • 준영속 ( detached)  : 영속성 컨텍스트에 저장되었다가 분리된 상태 
  • 삭제 (removed)  : 삭제된 상태 

 

 

 

 

영속성 컨텍스트의 장점 

  • 1차 캐시

  • 동일성(identity)  보장
  • 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind) 

  • 변경 감지(Dirty Checking) 

- 변경 감지를 통해서 em.update(member) 와 같은 코드는 필요가 없다.

- 엔티티 데이터 수정 후 커밋만 하면 된다. 

- 플러시 ? 영속성 컨텍스트의 변경내용을 데이터베이스에 반영 

- 플러시 발생 : 변경 감지. 수정된 엔티티 쓰기 지연 SQL 저장소에 저장. 

  • 지연로딩 ( Lazy Loading) 

 

(해당 글은 인프런- 자바 ORM 표준 JPA 프로그래밍 수업 및 제공되는 자료를 바탕으로 작성하였습니다. ) 

'Spring > 자바 ORM 표준 JPA프로그래밍' 카테고리의 다른 글

고급매핑 : 상속관계 매핑 /@MappedSuperclass  (0) 2022.05.10
다양한 연관관계 매핑  (0) 2022.05.08
연관관계 매핑 기초  (0) 2022.05.07
엔티티 매핑  (0) 2022.05.06
JPA 소개  (0) 2022.05.05