JPA

JPA PersistenceContext(영속성컨텍스트), 장점

차간단 2024. 2. 21. 11:49
반응형

JPA 구동방식

영속성 컨테스트(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

 

반응형