초록꼬마의 devlog
article thumbnail
Published 2023. 8. 9. 22:01
flush(플러시) back-end dev/JPA

🌿 정의

트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티/영속성 컨텍스트의 변경 내용을 데이터베이스에 반영/동기화하는 것

🌿 의미

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

🌿 방법

🌱 영속성 컨텍스트를 flush하는 방법

  1. em.flush() 호출
  2. 트랜잭션 커밋 시 자동 호출됨
  3. JPQL 쿼리 실행 시 자동 호출됨

🌱 옵션

  • FlushModeType.AUTO
  • FlushModeType.COMMIT

 


References

자바 ORM 표준 JPA 프로그래밍(2015, 에이콘)

'back-end dev > JPA' 카테고리의 다른 글

pageable  (0) 2023.08.24
JPQL 사용  (0) 2023.08.19
error log 1  (0) 2023.07.31
update  (0) 2023.07.29
재귀적/자기참조/순환 관계를 JPA에서 구현하기  (0) 2023.07.21