JPA/JPA
영속성 컨텍스트
lovineff
2020. 6. 9. 10:17
영속성 컨텍스트
엔티티를 영구 저장하는 환경
영속성 컨테스트에 저장
EntityManager.persist(entity); // 1차 캐시에 저장, INSERT SQL 생성하여 쓰기 지연 SQL 저장소에 저장
엔티티 매니저를 통해서 영속성 컨텍스트에 접근
비영속
객체를 생성한 상태
Member member = new Member();
영속
em.persist(member);
준영속 상태
em.detach(member);
삭제
em.remove(member);
영속성 컨텍스트의 이점
1차 캐시
- 동일성(identity) 보장
변경 감지(Dirty Checking)
- 수정시 스냅샷을 통해 기존 엔티티와 비교하여 변경이 있는 경우 수정 쿼리 생성
지연 로딩(Lazy Loading)
flush
영속성 컨텍스트의 변경 내용을 즉시 데이터베이스에 반영
commit, query 사용시 자동 사용