본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다.
준영속 상태
- 영속 -> 준영속
- 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached)
- 영속성 컨텍스트가 제공하는 기능을 사용 못함
- update, dirty checking 등 …
JPA 조회시 1차 캐시에 없으면 DB에서 가져와서 1차 캐시에 올린다. 1차 캐시에 올라간 상태가 영속 상태(JPA가 관리하는 상태)인데 만약 find()메서드로 조회 후 1차 캐시에 없어서 DB에서 가져온다면 해당 entity는 영속 상태가 된다.
준영속 상태로 만드는 방법
em.detach(entity)
- 특정 엔티티만 준영속 상태로 전환
em.clear()
- 영속성 컨텍스트를 완전히 초기화
em.close()
- 영속성 컨텍스트를 종료