728x90
영속성 컨텍스트(Persistence Context)
- JPA를 이해하는데 가장 중요한 용어
- "Entity를 영구 저장하는 환경"이라는 뜻
- EntityManager.persist(entity)
EntityManager와 영속성 컨텍스트
- 영속성 컨텍스트는 논리적인 개념이다.
- 눈에 보이지 않는다.
- EntityManager를 통해서 영속성 컨텍스트에 접근한다.
Entity의 생명주기

영속성 컨텍스트의 이점
- 1차 캐시 동일성(identity) 보장
- 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind)
- 변경 감지(Dirty Checking) 지연 로딩(Lazy Loading)






출처: 김영한님 JPA
flush란 무엇인가?
- 영속성 컨텍스트의 변경 내용을 데이터 베이스에 반영하는 것이다.
- flush 발생조건
- 변경 감지
- 수정된 엔터티 쓰기 지연 SQL 저장소에 등록 등등
- 영속성 컨텍스트를 flush하는 방법
- em.flush() 직접호출
- 트랜잭션 커밋 -> flush 자동호출
- JPQL 쿼리 실행 -> flush 자동호출
flush에 대한 정리
- 영속성 컨텍스트를 비우고 DB에 반영하는 것이 아니다.
- -> 영속성 컨텍스트의 변경내용을 DB에 동기화 하는 것이다.
'JPA & Querydsl' 카테고리의 다른 글
| QueryDsl을 사용하면서, fetchjoin()을 사용해야 할 때는 언제인가? (0) | 2025.02.25 |
|---|---|
| fetchResults(), fetchCount() deprecated된 이유(Querydsl) (0) | 2024.05.20 |
| Transaction에 대하여 깊이있게.. (1) | 2023.12.28 |
| JPA 연관관계 매핑 (0) | 2023.12.05 |
| JPA는 무엇일까? (0) | 2023.12.04 |