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 사용시 자동 사용

'JPA > JPA' 카테고리의 다른 글

즉시 로딩과 지연 로딩  (0) 2020.06.09
양방향 매핑 예제  (0) 2020.06.09
객체와 테이블 연관관계 매핑  (0) 2020.06.09
엔티티 매핑  (0) 2020.06.09
객체와 관계형 데이터베이스의 차이  (0) 2020.06.09