준영속 상태

2023. 5. 7. 23:01JPA

준영속 상태

-> 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태

-> 엔티티가 영속성 컨텍스트에서 분리되었기 때문에 해당 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다.

 

◎ 준영속 상태로 만드는 방법

-> em.detach(entity) : 특정 엔티티만 준영속 상태로 만든다.

em.detach() 사용

- 위 코드에서 데이터를 변경했음에도 결과를 보면 쿼리가 실행되지 않은 것을 볼 수 있다.

 

-> em.clear() : 영속성 컨텍스트를 초기화한다.

- clear를 사용할 때도 쿼리가 실행되지 않았다.

- 만약 clear() 이후에 같은 member 객체를 find()를 통해 찾는다면 

- clear()를 통해 영속성 컨텍스트가 초기화되었기 때문에 find()를 할 떄 쿼리가 실행이 된다. 따라서 위 그림처럼 쿼리가 2번 실행이 된다.

 

-> em.close() : 영속성 컨텍스트를 종료한다.

 

★ 참고

자바 ORM 표준 JPA 프로그래밍 - 기본편

'JPA' 카테고리의 다른 글

JPA 프록시  (0) 2025.02.22
@PrePersist  (0) 2023.05.17
flush  (0) 2023.05.07
더티 체킹  (0) 2023.05.07
식별자 전략  (0) 2023.02.28