Detach

2023. 12. 21. 03:38카테고리 없음

 

준영속 상태 (detach 된 상태)

영속에서 준영속 상태가 되는 것.
 
영속 상태의 entity 가 영속성 컨텍스트에서 분리되는 것이다 (detached).

 

준영속 상태가 되면 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다

(em.find 나 업데이트할 때 기능, dirty checking ).


 

준영속 상태로 만드는 방법


em.detach(entity)

 

특정 entity 만 준영속 상태로 전환할 때 사용한다.


em.clear()​
영속성 컨텍스트를 완전히 초기화한다.
 
em.close()
영속성 컨텍스트를 종료한다.

 

em.clear();

 

entity 매니저 안에 있는 영속성 컨텍스트를 통째로 다 지운다.
 
 

 

영속성 컨텍스트가 완전히 초기화되어 있으면,
똑같은 객체를 다시 조회해도 다시 처음부터 영속성 컨텍스트에 올리게 된다.
( = select 쿼리를 보낸다).
 

 

준영속 상태는 1차 캐시와 관계없이 테스트 케이스를 작성하거나 눈으로 확인하고 싶을 때 사용하면 좋다.