- 영속 상태 → 준영속 상태
- 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태이다. (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
'[Spring] > JPA 프로그래밍 - 기본편' 카테고리의 다른 글
데이터베이스 스키마 자동 생성 (0) | 2023.04.12 |
---|---|
객체와 테이블 매핑 (0) | 2023.04.11 |
플러시 (0) | 2023.04.09 |
영속성 컨텍스트 2 (0) | 2023.04.08 |
영속성 컨텍스트 1 (0) | 2023.04.07 |