준영속 상태 -> 영속 상태 변환될 때
em.persist(member);
em.find(Member.class, "member1");
영속 상태 -> 준영속 상태
1) 영속 상태의 엔티티가 영속성 컨텍스트에서 분리되는 것
2) 영속성 컨텍스트가 제공하는 기능(1차 캐시, 변경 감지 등)을 사용 못함
준영속 상태로 만드는 방법
1) em.detach : 특정 엔티티만 준영속 상태로 전환
Member member = em.find(Member.class, 150L); // id가 Long타입이므로 뒤에 L붙임
member.setName("AAAAA");
em.detach(member);
tx.commit(); // 아무리 커밋해도 변경 내용이 DB에 저장되지 않음
2) em.clear() : 영속성 컨텍스트를 완전히 초기화
Member member = em.find(Member.class, 150L);
member.setName("AAAAA");
em.clear();
tx.commit(); // 아무리 커밋해도 변경 내용이 DB에 저장되지 않음
3) em.close() : 영속성 컨텍스트 종료 - 모든 엔티티 관리 X
'JPA' 카테고리의 다른 글
[JPA] 필드와 컬럼 매핑 (0) | 2023.07.15 |
---|---|
[JPA] 객체와 테이블 매핑 (0) | 2023.07.15 |
[JPA] 플러시 (0) | 2023.07.13 |
[JPA] 영속성 컨텍스트2 (0) | 2023.07.13 |
[JPA] 영속성 컨텍스트 (0) | 2023.07.13 |