flush

2023. 5. 7. 22:46JPA

◎ Flush

-> 영속성 컨텍스트의 변경 사항을 db에 반영하는 것

-> 플러시가 발생하는 상황

- 변경 감지(더티 체킹) 발생할 때

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

- 쓰기 지연 SQL 저장소의 쿼리를 db에 전송할 때

 

-> 플러시 하는 방법

- em.flush()를 통해 직접 플러시를 발생 시킨다.

- 트랜잭션 커밋 시 자동으로 플러시가 발생한다.

- JPQL 쿼리 실행 시 자동으로 플러시가 발생한다.

 

-> 플러시 모드 옵션

- FlushModeType.AUTO : 커밋이나 쿼리 실행 시 플러시 - 기본 값

- FlushModeType.COMMIT : 커밋할 때만 플러시한다.

 

◎ 플러시 특징

-> 플러시를 한다고 해서 영속성 컨텍스트를 비우는 것은 아니다.

-> 영속성 컨텍스트의 변경사항을 데이터베이스에 동기화한다.

 

★ 참고

자바 ORM 표준 JPA 프로그래밍 - 기본편

'JPA' 카테고리의 다른 글

@PrePersist  (0) 2023.05.17
준영속 상태  (0) 2023.05.07
더티 체킹  (0) 2023.05.07
식별자 전략  (0) 2023.02.28
JPA  (0) 2023.02.23