영속성 컨텍스트

kwang·2022년 9월 2일
0

JPA

목록 보기
1/2

영속성 컨텍스트

영속성 컨텍스트는 애플리케이션과 데이터베이스 사이에 객체를 보관하는 가상의 DB와 같은 역할을 한다.

이러한 영속성 컨텍스트는 엔티티 매니저를 통해 접근이 가능하며 아래와 같은 장점이 있다.

  • 1차 캐시 지원
    맵과 같은 형식의 공간이 있는데 엔티티를 등록 조회하면 해당 맵의 등록하고 반복해서 조회시 DB에서 조회하는게 아닌 맵에서 해당 엔티티를 조회가능하게 한다.

  • 동일성 보장
    1차 캐시를 지원함으로써 반복해서 조회되는 객체는 동등성(값의 동일)은 물론 동일성(객체의 완전 일치)을 보장

  • 트랜잭션을 지원하는 쓰기 지연
    영속성 컨텍스트는 쓰기지연SQL 저장소라는 곳이 존재한다. 해당 저장소는 영속성 컨텍스트에 엔티티의 저장, 수정, 삭제등이 이루어 질 때 생성된 SQL을 DB에 바로 전달하지 않고 저장하였다가 트랜잭션 범위가 종료되면 한번에 SQL을 전달하여 커넥션 사용 비용을 감소하여 성능향상의 효과가 있다.

  • 변경 감지
    영속성 컨텍스트에 영속상태로 등록된 엔티티는 스냅샷이라고하는 초기의 객체 값을 저장하게 되는데 영속성 컨텍스트의 플러시가 일어나는 순간 관리되는 엔티티들의 현재 값과 초기 값을 비교하여 SQL저장소의 추가로 저장하여 반영된다.

  • 지연 로딩 기능

0개의 댓글