
https://ultrakain.gitbooks.io/jpa/content/chapter3/chapter3.4.html
JPA는 보통 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티를 데이터 베이스에 반영하는데 이를 flush라고 한다. 영속성 컨텍스트의 엔티티의 변경 내용을 데이터베이스에 동기화하는 것
1. 변경 감지가 동작해서 스냅샷과 비교, 수정된 엔티티를 찾는다
2. 수정된 엔티티에 대해 수정쿼리를 만들고 sql 저장소에 등록한다.
3. 쓰기 지연 sql 저장소의 쿼리를 데이터베이스에 저장한다.
플러시 방법
1. em.flush()
2. 트랜잭션 커밋 시 자동 호출
3. JQPL 쿼리 실행 시 자동 호출
참고
https://incheol-jung.gitbook.io/docs/q-and-a/spring/persistence-context
https://velog.io/@neptunes032/JPA-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%9E%80