flush

Mina Park·2022년 8월 27일
0
  1. 개념
  • 영속성 컨텍스트의 변경내용을 데이터베이스에 반영(동기화)
  1. 발생
  • 변경 감지
  • 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록,수정,삭제)
  1. 플러시 방법
  • 직접호출: em.flush()
  • 트랜잭션 커밋: 플러시 자동 호출
  • JPQL 쿼리 실행: 플러시 자동 호출
  1. 플러시 모드 옵션
    em.setFlushMode(FlushModeType.COMMIT)
  • FlushModeType.AUTO
    • 커밋이나 쿼리 실행시 플러시 => 디폴트값(되도록 수정하지 않는 것을 권장)
  • FlushModeType.COMMIT '
    • 커밋할 때만 플러시
  1. 특징
  • 영속성 컨텍스트를 비우는건 아님
  • 트랜잭션 작업 단위가 중요!! => 커밋 직전에만 동기화하면 됨
Member member = new Member(200L, "member200");
            em.persist(member);
            em.flush(); //강제 호출
            //쓰기 지연 SQL 저장소에 있던 쿼리가 DB에 반영하여 동기화(1차캐시가 없어지는건 아님)

0개의 댓글