김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다.
https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C
영속화되는 상황은 두가지가 있습니다.
1. persist했을 때
2. find를 했는데 1차 캐시에 없어서 DB에서 가져온 후, 영속성 컨텍스트에 엔티티를 올려둔 경우
그렇다면 준영속 상태란?
영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached)되는 경우.
이렇게 되면 영속성 컨텍스트가 제공하는 기능을 사용할 수 없음(더티체킹, 지연 로딩 등등...)
준영속 상태로 만드려면 아래와 같이 하면 됩니다.(주석 참고)
준영속 상태로 만드는 3가지 방법 :
em.detach(entity) : 특정 엔티티만 준영속 상태로 만들기
em.clear() : 영속성 컨텍스트를 완전히 초기화
em.close() : 영속성 컨텍스트를 종료
'JPA > JPA원리' 카테고리의 다른 글
7 JPA 필드와 칼럼 매핑 (0) | 2021.07.04 |
---|---|
6 JPA 객체와 테이블 매핑, 데이터베이스 스키마 자동 생성 (0) | 2021.07.04 |
4 JPA 플러시(flush) (0) | 2021.07.03 |
3 JPA 영속성 컨텍스트 이해하기 (0) | 2021.07.03 |
2 JPA로 CRUD해보기 (0) | 2021.07.02 |