반응형
영속성 컨테스트(PersistenceContext)
- JPA를 이해하는데 가장 중요한 용어
- "엔티티를 영구 저장하는 환경"
- EntityManager.persist(entity)
엔티티의 생명주기
- 비영속(new/transient)
- 영속 (managed)
- 준영속 (detached)
- 삭제(removed)
비영속
셋팅만 한 상태
영속
객체를 저장한 상태
준영속
엔티티를 영속성 컨테스트에서 분리
em.detach(member);
삭제
객체를 삭제한 상태
em.remove(member);
PersistenceContext의 이점
- 1차 캐시
- 동일성(identity) 보장
- 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
- 변경감지(Dirty Checking)
- 지연로딩(Lazy Loading)
엔티티 조회, 1차캐시
영속 엔티티의 동일성 보장
- 1차캐시로 반복 가능한 읽기(REPEATABLE READ) 등급의 트랜잭션 격리 수준을 데이터베이스가 아닌 애플리케이션 차원에서 제공
트렌잭션을 지원하는 쓰기 지연
트랜잭션이 끝난후에 쿼리 실행
트랜잭션 커밋할때 쿼리가 한 번에 날아감
변경감지
엔티티삭제
remove
반응형
'JPA' 카테고리의 다른 글
JPA 기본 키 매핑(Entity Mapping) GenerationType.IDENTITY, SEQUENCE, TABLE (0) | 2024.02.22 |
---|---|
JPA hibernate.hbm2ddl.auto 매핑 어노테이션(mapping annotations) (0) | 2024.02.22 |
JPA hibernate.hbm2ddl.auto 데이터베이스 스키마 자동생성 (0) | 2024.02.21 |
JPA 플러시(flush) (1) | 2024.02.21 |
JPA 소개, JPA 장점, ORM (0) | 2024.02.20 |