JPA에서는 엔터티에 대한 캐싱과 객체에 대한 유일성을 보장하기 위해
"영속성 컨텍스트"라는 개념을 제공한다
영속성 컨텍스트란,
"엔티티를 영구 저장하는 환경"이다.
DB에 데이터를 저장하기 전에 사용되는 가상의 DB 같은 개념이다.
JPA에서는 App과 DB사이에 영속성 컨텍스트라는 중간 레이어를 두어 DB 접근 시 여러 이점을 제공하고 있다.
이점은 다음과 같다
- 성능향상
- 1차 캐시, 쓰기 지연, 지연 로딩을 통해 성능 최적화
- 동일한 쿼리에 대해 동일한 결과 보장
- 동일한 쿼리를 요청한 적이 있는 경우, 쿼리를 DB에 요청하지 않고 1차 캐시에 저장된 결과 반환
- 엔티티 객체에 대한 유일성 보장
- 동일한 트랜잭션에 대해 동일한 객체를 반환
- 엔티티의 해시코드로 같은 쿼리결과에 대한 엔티티인지 비교가능
- 변경 감지
- 트랜잭션이 커밋될 시점에 엔티티의 변경내용을 감지하여 DB에 반영한다
엔티티 매니저를 생성할 때마다 1개의 영속성 컨텍스트가 생성된다
'Spring > JPA' 카테고리의 다른 글
Entity-Table 매핑 - Entity와 테이블 매핑방법 (0) | 2023.02.12 |
---|---|
영속성 컨텍스트 이점 (0) | 2023.02.12 |
엔티티의 생명주기 (0) | 2023.02.12 |
JPA를 사용하는 이유 (0) | 2022.07.14 |
JAVA11 - javax.xml.bind.JAXBException 에러 (0) | 2022.07.14 |
댓글