공부흔적/JPA

영속성 컨텍스트 초기화(clear)와 종료(close), 비영속과 준영속

주디 𝙹𝚞𝚍𝚢 2021. 4. 6. 11:13

초기화 : 영속성 컨텍스트의 1차 캐시, 쓰기 지연 SQL저장소가 비워진다.

종료 : 영속성 컨텍스트의 1차 캐시, 쓰기 지연 SQL저장소도 사라진다.

영속성 컨텍스트가 초기화나 종료되면 엔티티는 준영속상태가 된다.


비영속 : 아직 영속성 컨텍스트나 데이터베이스와 전혀 관련이 없는 순수한 객체 상태

준영속 : (원래 관리했지만) 영속성 컨텍스트가 관리하지 않는 상태

 준영속 상태로 만들려면 아래와 같은 세 가지 방법이 있다.

// 1. 준영속 상태로
em.detach();

// 2. 영속성 컨텍스트 종료
em.close();

// 3. 영속성 컨텍스트 초기화
em.clear();

준영속 상태의 특징

1. 비영속 상태와 유사하지만 영속상태를 거쳤기 때문에 반드시 식별자 값은 가지고 있다.

2. 지연로딩을 할 수 없다.

300x250