flush
2023. 5. 7. 22:46ㆍJPA
◎ Flush
-> 영속성 컨텍스트의 변경 사항을 db에 반영하는 것
-> 플러시가 발생하는 상황
- 변경 감지(더티 체킹) 발생할 때
- 수정된 엔티티가 쓰기 지연 SQL 저장소에 등록될 때
- 쓰기 지연 SQL 저장소의 쿼리를 db에 전송할 때
-> 플러시 하는 방법
- em.flush()를 통해 직접 플러시를 발생 시킨다.
- 트랜잭션 커밋 시 자동으로 플러시가 발생한다.
- JPQL 쿼리 실행 시 자동으로 플러시가 발생한다.
-> 플러시 모드 옵션
- FlushModeType.AUTO : 커밋이나 쿼리 실행 시 플러시 - 기본 값
- FlushModeType.COMMIT : 커밋할 때만 플러시한다.
◎ 플러시 특징
-> 플러시를 한다고 해서 영속성 컨텍스트를 비우는 것은 아니다.
-> 영속성 컨텍스트의 변경사항을 데이터베이스에 동기화한다.
★ 참고