Etc
영속성 컨텍스트 란
당리
2024. 9. 22. 23:52
영속성 컨텍스트는 JPA를 이해하는데 가장 중요한 용어로 엔티티를 영구 저장하는 환경을 의미합니다.
실제 코드에서는 EntityManager.persists(entity)와 같이 사용한다.
영속성 컨텍스트는 논리적인 개념이며, 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다.
영속성 컨텍스트를 쓰는 장점은 1차 캐시, 동일성 보장, 쓰기 지연, 변경감지(Dirty checking), 지연로딩이 있다
- 1차 캐시: 조회가 가능하며 1차 캐시에 없으면 DB에서 조회하여 1차 캐시에 올려 놓습니다.
- 동일성 보장: 동일성 비교가 가능합니다.(==)
- 쓰기 지연: 트랜잭션을 지원하는 쓰기 지연이 가능하며 트랜잭션 커밋하기 전까지 SQL을 바로 보내지 않고 모아서 보낼 수 있습니다.
- 변경 감지(Dirty checking): 스냅샷을 1차 캐시에 들어온 데이터를 찍습니다. commit 되는 시점에 Entity와 스냅샷과 비교하여 update SQL을 생성합니다.
- 지연 로딩: 엔티티에서 해당 엔티티를 불러올 때 그 때 SQL을 날려 해당 데이터를 가져옵니다.