해결된 질문
작성
·
371
답변 1
2
안녕하세요. 에러나면짖는개님, 공식 서포터즈 David입니다.
.
flush는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것입니다.
트랜잭션 커밋시 내부적으로 flush() 호출
1. 엔티티와 스냅샷 비교 후 변경된 것에 대한 SQL 생성
2. 생성된 SQL을 쓰기 지연 SQL 저장소에 등록
3. 쓰기 지연 SQL 저장소에 등록된 쿼리를 DB로 전송
1-2번 항목은 3번을 위해 필요한 과정이고요.
변경 내용을 DB에 반영하는 것만 놓고 보면 3번을 flush라고 볼 수 있습니다.
그리고 그 과정에서 필요한 것들이 1-2번입니다.
.
감사합니다.