티스토리 뷰

Framework/Spring

[JPA] 플러시

DUCKBAE's 2022. 10. 25. 23:28

플러시

영속성 컨텍스트의 변경 내용을 데이터베이스에 동기화하는 것이다.

플러시를 실행할 경우 다음과 같은 일이 일어난다.

  • 변경 감지가 동작해서 영속성 컨텍스트에 있는 모든 엔티티를 스냅샷과 비교해서 수정된 엔티티를 찾는다.
    수정된 엔티티는 수정 쿼리를 만들어 쓰기 지연 SQL 저장소에 등록한다.
  • 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다.


영속성 컨텍스트를 플러시하는 방법은 3가지가 있다.

  • em.flush()를 직접 호출한다.
    엔티티 매니저의 flush() 메서드를 직접 호출해서 영속성 컨텍스트를 강제로 플러시한다.
    테스트나 다른 프레임워크와 JPA를 함께 사용할 때를 제외하고 거의 사용하지 않는다.
  • 트랜잭션 커밋 시 플러시가 자동 호출된다.
  • JPQL 쿼리 실행 시 플러시가 자동 호출된다.


추가로, 플러시 모드를 별도로 설정하지 않으면 AUTO 로 동작한다.
따라서 트랜잭션 커밋이나 쿼리 실행 시에 플러시를 자동으로 호출한다.

참고
자바 ORM 표준 JPA 프로그래밍 - 김영한

'Framework > Spring' 카테고리의 다른 글

[JPA] 프록시 객체  (0) 2022.10.31
[JPA] 양방향 연관관계 매핑  (0) 2022.10.26
[JPA] 패러다임 불일치  (0) 2022.10.24
[Spring] HTTP 통신 도구  (0) 2022.10.19
[Spring] 데이터 유효성 검증  (0) 2022.10.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함