엔티티를 영구 저장하는 환경이라는 뜻이다.
EM 으로 Entity를 저장하거나 조회하면 EM은 영속성 컨텍스트에 엔티티를 보관하고 관리한다.
- 엔티티의 생명주기
엔티티에는 4가지 상태가 존재한다.
- 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 상태
- 영속 : 영속성 컨텍스트에 저장된 상태.
- 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태
- 삭제 : 삭제된 상태
- 영속성 컨텍스트의 특징
- 영속성 컨텍스트와 식별자 값
영속성 컨텍스트는 엔티티를 식별자 값으로 구분하기 떄문에
반드시 영속상태는 식별자 값이 있어야한다. 없다면 예외가 발생한다.
2. 영속성 컨텍스트와 DB 저장
JPA는 보통 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티를 DB에 반영하는데
이것을 flush 라고 한다.
- 영속성 컨텍스트가 엔티티를 관리할 떄 장점
- 1차 캐시
- 동일성 보장
- 트랜잭션을 지원하는 쓰기 지연
- 변경 감지
- 지연 로딩
'Back-End > JPA' 카테고리의 다른 글
JPA) Flush (0) | 2022.03.11 |
---|---|
JPA) 변경 감지 (Dirty Check) (0) | 2022.03.11 |
JPA) EM, EMF (0) | 2022.03.11 |
JPA란? (0) | 2022.03.11 |
JPA) 1차 캐시 (0) | 2022.03.11 |