- 개념
- 영속성 컨텍스트의 변경내용을 데이터베이스에 반영(동기화)
- 발생
- 변경 감지
- 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록,수정,삭제)
- 플러시 방법
- 직접호출: em.flush()
- 트랜잭션 커밋: 플러시 자동 호출
- JPQL 쿼리 실행: 플러시 자동 호출
- 플러시 모드 옵션
em.setFlushMode(FlushModeType.COMMIT)
- FlushModeType.AUTO
- 커밋이나 쿼리 실행시 플러시 => 디폴트값(되도록 수정하지 않는 것을 권장)
- FlushModeType.COMMIT '
- 특징
- 영속성 컨텍스트를 비우는건 아님
- 트랜잭션 작업 단위가 중요!! => 커밋 직전에만 동기화하면 됨
Member member = new Member(200L, "member200");
em.persist(member);
em.flush(); //강제 호출
//쓰기 지연 SQL 저장소에 있던 쿼리가 DB에 반영하여 동기화(1차캐시가 없어지는건 아님)