JPA - 3

HyeBin, Park·2022년 1월 5일
0
post-thumbnail

엔티티의 생명주기

  • 비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태

  • 영속 (managed) : 영속성 컨텍스트에 저장된 상태

  • 준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태

  • 삭제 (removed) : 삭제된 상태


준영속(detached)

  • 준영속 상태의 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다.
  • 영속 상태의 엔티티를 준영속 상태로 만드는 방법
    • entitymanager.detach(entity) : 특정 엔티티만 준영속 상태로 전환
    • entitymanager.clear() : 영속성 컨텍스트를 완전히 초기화
    • entitymanager.close() : 영속성 컨텍스트를 종료

준영속 상태의 특징

  • 거의 비영속 상태에 가깝다.
  • 식별자 값을 가지고 있다
    => 비영속 상태는 식별자 값이 없을 수도 있지만 준영속 상태는 이미 한 번 영속 상태였으므로 반드시 식별자 값을 가지고 있다.
  • 지연 로딩을 할 수 없다

준영속 상태의 엔티티를 다시 영속 상태로 변경

  • merge() 메소드는 준영속 상태의 엔티티를 바당서 그 정보로 새로운 영속 상태의 엔티티를 반환한다.

0개의 댓글