본문 바로가기
Spring/ORM

3. 영속성 관리 - 내부 동작 방식

by wch_t 2023. 8. 29.

JPA에서 가장 중요한 2가지

- 객체와 관계형 데이터베이스 매핑하기 (ORM)

- 영속성 컨텍스트

 

1. 영속성 컨텍스트

- JPA에서 관리되는 Entity 객체의 논리적인 저장소

- Entity 객체의 생명 주기를 관리하고, DB와의 상호작용을 최적화하는 역할을 한다.

 

https://chat.openai.com/share/d91d8f7c-5495-4c01-adf6-313078551d53

 

 

1) 영속성 컨텍스트의 장점

 

(1) 1차 캐시

 

 

(2) 동일성 보장 (Identity)

 

 

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

 

 

(4) 업데이트 변경 감지 (Dirty Checking)

 

 

(5) 지연 로딩 (Lazy Loading)

 

 

 

2) 영속성 컨텍스트를 플러시하는 방법

 

(1) em.flush() : 직접 호출

 

(2) 트랜잭션 커밋 : flush 자동 호출

 

(3) JPQL 쿼리 실행 : flush 자동 호출

 

 

 

3) 준영속 상태로 만드는 방법

준영속 : 영속성 컨택스트에 저장되었다가 분리된 상태

              DB와는 더 이상 연결되지 않으며, 변경 사항은 추적되지만 자동으로 반영되지 않는다.

 

(1) em.detach(entity) : 특정 엔티티만 준영속 상태로 전환

 

(2) em.clear() : 영속성 컨텍스트를 완전히 초기화

 

(3) em.close() : 영속성 컨텍스트를 종료

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

6. 다양한 연관관계 매핑  (0) 2023.09.03
5. 연관관계 매핑 기초  (0) 2023.09.02
4. 엔티티 매핑  (0) 2023.09.02
2. JPA 시작하기  (0) 2023.08.29
1. JPA 소개  (0) 2023.08.29