병아리의 코딩 일기

[JPA]플러시 본문

자바 Java/Spring

[JPA]플러시

oilater 2023. 2. 15. 12:19

플러시란 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것을 말한다.

 

DB 트랜젝션이 커밋될 때 플러시가 일어나는데

우리가 쌓아놨던 insert, delete, update 등의 쿼리들이 DB로 날라가는 것이다.

 

영속성 컨텍스트의 변경사항과 DB를 맞추는 작업이 flush이다. 

 


transaction 이 커밋되어 플러시가 발생하면 생기는 일

 

1. 변경 감지

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

3. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리)

 

 

 

영속성 컨텍스트를 플러시하는 방법

 

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

2. 트랜잭션 커밋 - 플러시 자동 호출

3. JPQL 쿼리 실행 - 플러시 자동 호출 (그냥 그렇구나 하고 이해만 하기)

 

 

 

플러시는!

  • 영속성 컨텍스트를 비우지 않음!
  • 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화
  • 트랜젝션이라는 작업 단위가 중요 -> 커밋 직전에만 동기화하면 됨.

 

 

728x90
반응형
LIST

'자바 Java > Spring' 카테고리의 다른 글

[JPA] 영속성 컨텍스트의 이점  (0) 2023.02.15
[JPA] 영속성 컨텍스트란?  (0) 2023.02.15
JPA 구동 방식  (0) 2023.02.15