준영속 상태
2023. 5. 7. 23:01ㆍJPA
◎ 준영속 상태
-> 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태
-> 엔티티가 영속성 컨텍스트에서 분리되었기 때문에 해당 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다.
◎ 준영속 상태로 만드는 방법
-> em.detach(entity) : 특정 엔티티만 준영속 상태로 만든다.
- 위 코드에서 데이터를 변경했음에도 결과를 보면 쿼리가 실행되지 않은 것을 볼 수 있다.
-> em.clear() : 영속성 컨텍스트를 초기화한다.
- clear를 사용할 때도 쿼리가 실행되지 않았다.
- 만약 clear() 이후에 같은 member 객체를 find()를 통해 찾는다면
- clear()를 통해 영속성 컨텍스트가 초기화되었기 때문에 find()를 할 떄 쿼리가 실행이 된다. 따라서 위 그림처럼 쿼리가 2번 실행이 된다.
-> em.close() : 영속성 컨텍스트를 종료한다.
★ 참고