본문 바로가기
Spring/JPA

영속성 컨텍스트 이점

by YellowCow 2023. 2. 12.

영속성 컨텍스트의 이점

1차 캐시

  • 데이터를 가져올 때 1차 캐시에 데이터가 있으면
    1차 캐시에서 데이터를 가져온다
  • DB 접근을 최소화하여 성능향상

동일성(identity) 보장

  • 자바 컬렉션에서 객체를 가져오는 것과 같이 엔티티의 동일성을 보장한다
  • 같은 트랜잭션 내의 엔티티는 유일성을 가진다
  • "=="과 같은 연산자로 동일한 엔티티인지 확인이 가능하다

트랜잭션을 지원하는 쓰기 지연 (transactional write-behind)

  • 데이터를 Insert/Update 시, 쿼리를 Commit 시점에 모아서 보낼 수 있다
  • DB 커넥션을 맺고 끊는 비용을 아낄 수 있다

변경 감지(Dirty Checking)

  • 따로 Update 쿼리를 요청하지 않아도
    데이터 변경 발생 시, 변경을 감지하여 자동으로 Update 쿼리 요청
  • 자바 컬렉션에서 값을 변경하는 것처럼 엔티티를 다룰 수 있게 해줌

지연 로딩(Lazy Loading)

  • 연관관계에 있는 엔티티들을 필요시에만 조회할 수 있도록 하는 기능
  • User 조회 시, Hobby와 Order가 필요하지 않을 때
    User에 대한 데이터만 조회하여 DB에 보내는 쿼리를 줄일 수 있다

'Spring > JPA' 카테고리의 다른 글

스키마 자동생성 옵션  (0) 2023.02.14
Entity-Table 매핑 - Entity와 테이블 매핑방법  (0) 2023.02.12
엔티티의 생명주기  (0) 2023.02.12
영속성 컨텍스트  (0) 2023.02.12
JPA를 사용하는 이유  (0) 2022.07.14

댓글