매일 한줄 코딩

[JPA] 준영속 상태 본문

develop/JPA(ORM)

[JPA] 준영속 상태

ShipJH 2022. 12. 22. 15:49

특징

  • 영속 → 준영속
  • 영속 상태의 엔티티가 영속성 컨텍스트에서 분리 (detached)
  • 영속성 컨텍스트가 제공하는 기능을 사용 못함.

준영속 상태로 만드는 방법

  • em.detach(entity)
    • 특정 엔티티만 준영속 상태로 전환
    Member member = em.find(Member.class, 1L);
    member.setName("abc");
    
    em.detach(member); // 변경된 내용이 수정된 쿼리가 날아가지 않음.
    
    Member member2 = em.find(Member.class, 2L);
    member2.setName("updateName"); // 해당건은 업데이트가 실행이 된다!
    tx.commit();
    
  • em.clear()
    • 영속성 컨텍스트를 완전히 초기화
    테스트 케이스 작성할때 보통 눈으로 보기위해 자주 씀.
  • em.close()
    • 영속성 컨텍스트를 종료
    영속성에 대한 기능을 하나도 쓸 수 없다. 그냥 닫아버리는 것.

'develop > JPA(ORM)' 카테고리의 다른 글

[JPA] 엔티티 매핑  (0) 2022.12.22
[JPA] 플러시  (0) 2022.12.22
[JPA]영속성 컨텍스트  (0) 2022.12.22
Comments