[Spring]/JPA 프로그래밍 - 기본편

준영속 상태

응파카 2023. 4. 10. 14:07
  • 영속 상태 → 준영속 상태
  • 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태이다. (detached)
  • 준영속 상태에서는 영속성컨텍스트가 제공하는 기능을 사용할 수 없다.

준영속 상태로 만드는 법

  • entityManager.detach(entity)
    • 특정 엔티티만 준영속 상태로 만든다.
  • entityManager.clear()
    • 엔티티 매니저 안의 영속성 컨텍스트를 초기화한다.
  • entityManager.close()
    • 영속성 컨텍스트를 종료한다.

준영속 상태가 되었는지 확인

  • UPDATE 쿼리 실행여부로 확인

저장되어있는 member의 이름을 변경한 후 준영속 상태로 만든 뒤 커밋하니, SELECT 쿼리는 실행되지만 UPDATE 쿼리는 실행되지 않는 것을 볼 수 있다.

  • SELECT 쿼리 여러번 실행되는 것으로 확인

중간에 entityManager.clear() 때문에 1차 캐시가 초기화되어서 SELECT 쿼리가 한번 더 실행되는것을 확인할 수 있다.

 

 

 

 

 

 


 

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

 

'[Spring] > JPA 프로그래밍 - 기본편' 카테고리의 다른 글

데이터베이스 스키마 자동 생성  (0) 2023.04.12
객체와 테이블 매핑  (0) 2023.04.11
플러시  (0) 2023.04.09
영속성 컨텍스트 2  (0) 2023.04.08
영속성 컨텍스트 1  (0) 2023.04.07