JPA

JPA 플러시(flush)

차간단 2024. 2. 21. 12:02
반응형

플러시(flush)

- 영속성 컨텍스트(PersistenceContext)의 변경내용을 데이터베이스에 반영

 

플러시 발생

- 변경감지

- 수정된 엔티티 쓰기 지연 SQL 저장소에 등록

- 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송

 

PersistenceContext flush

- em.flush() (직접호출)

- 트랜잭션 커밋 (플러시 자동호출)

- JPQL 쿼리 실행 (플러시 자동호출)

 

플러시 모드 옵션

em.setFlushMode(FlushModeType.COMMIT);

FlushModeType.AUTO  커밋이나 쿼리를 실행할 때 플러시(기본값)

FlushModeType.COMMIT 커밋할때만 플러시

 

Flush(플러시)

 

- PersistenceContext 를 비우지않음

- PersistenceContext 변경내용을 데이터베이스에 동기화

- 트랜잭션이라는 작업 단위가 중요 > 커밋 직전에만 동기화 하면됨

반응형