영속성 컨텍스트의 이점
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 |
댓글