Skip to main content

영속성 컨텍스트

·107 words·1 min· loading
Table of Contents
JPA - This article is part of a series.
Part 2: This Article

JPA에서 가장 중요한 2가지
#

  • ORM, 영속성 컨텍스트

영속성 컨텍스트란?
#

Entity를 영구 저장하는 환경 엔티티 객체의 생명주기 관리, 캐싱, 트랜잭션 처리 등을 담당하는 핵심 컴포넌트

이점
#

  • 1차캐시, 동일성보장, 변경 감지(dirty checking), 지연 로딩(lazy loading) 등

엔티티의 생명주기
#

  • 비영속new (전혀 관계가 없음)
  • 영속managed (관리되는 상태)
  • 준영속detached (저장되었다가 분리된 상태 )
  • 삭제removed (삭제된 상태)

flush
#

저장

em.persist(entity)

flush

em.flush()가 호출되면 , SQL 저장소에 있던 SQL 들을 DB로 보냄 커밋시 자동호출

flush()를 호출해서, 즉시 보낼수도 있음

  • 기본 설정으로는, 커밋 또는 JPQL이 실행되면 flush()가 실행됨
  • 영속성 컨텍스트를 비우는게 아니라, 변경 내용을 데이터베이스에 동기화하는것

Dirty Checking
#

1차 캐시에 있는 스냅샷과 엔티티를 배교해서, 변경사항이 있으면 flush()할때 DB에 보냄

JPA - This article is part of a series.
Part 2: This Article