준영속 상태

  • 영속

    • 영속성 컨텍스트에서 관리되는 상태

    • insert뿐만 아니라 조회할 때 1차 캐시에 없어서 DB에서 가져와 1차 캐시에 올리는 상태도 포함된다.

  • 준영속

    • 영속 상태의 Entity가 영속성 컨텍스트에서 분리되는 상태

    • detach()를 실행하면 트랜잭션을 커밋해도 영향을 받지 않는다.

    • 영속성 컨텍스트가 더 이상 관리하지 않는 상태가 된다.

    • 즉, 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다.

준영속 상태로 만드는 법

  • em.detach(entity)

    • 특정 Entity만 준영속 상태로 전환한다.

  • em.clear()

    • 영속성 컨텍스트를 통으로 지운다.

    • 즉, 완전히 초기화한다.

    • 1차 캐시 등이 다 사라졌기 때문에 같은 데이터를 조회해도 다시 DB에서 가져온다.

  • em.close()

    • 영속성 컨텍스트를 종료한다.

Last updated

Was this helpful?