- 변경 감지 (더티체킹)
- 수정된 Entity 쓰기지연 SQL 저장소에 등록
- 쓰기 지연 SQL, 저장소의 쿼리를 데이터 베이스에 전송 (등록, 수정, 삭제 쿼리)
- 트랜잭션이라는 작업 단위가 중요 -> 커밋 직전에만 동기화 하면된다.
!! em.commit 전에 쿼리문을 미리 보고 싶을때 사용
- 1차 캐시가 지워지는게 아님
- Commit 전에 DB에 날라간다.
- em.flush() - 직접호출 (잘 사용 X, 하는방법은 알고있어야함)
- 트랜잭션 커밋 - 플러시 자동 호출
- JPQL 쿼리 실행 - 플러시 자동 호출
- 영속 -> 준영속
- 영속 상태의 Entity가 영속성 컨텍스트에서 분리 (detached)
- 영속성 컨텍스트가 제공하는 기능을 사용하지 못한다.
- em.detach (entity)
- 특정 Entity만 준영속 상태로 전환
- em.clear ()
- 영속성 컨텍스트를 완전히 초기화
- em.close ()
- 영속성 컨텍스트를 종료
- em.persist()를 하는경우
- em.find()를 실행후, 1차 캐시에 없어서 DB조회후 1차캐시에 저장되는경우