JPA

JPA 플러시

으엉어엉 2024. 8. 15. 18:14
728x90

플러시란?

영속성 컨텍스트의 변경내용을 데이터베이스에 반영하는것

  • 변경 감지
  • 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 
  • 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리)

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

  • em.flush() - 직접 호출  -> 테스트할때만 거의 사용함 쓰기지연 SQL 저장소에 있는 데이터가 데이터베이스에 반영됨
  • 트랜잭션 커밋 - 플러시 자동 호출
  • JPQL 쿼리 실행 - 플러시 자동 호출
            Member member = new Member(200L, "member200");
            em.persist(member);

            em.flush(); //다 즉시 일어난다.

 

 

(플러시를 하더라도 1차 CASH는 유지가 된다. 쓰기 지연 SQL 저장소에 있는 것들이 데이터베이스에 반영 되는 것이다.)

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

준영속 상태로 만드는 방법

  • em.detach(entity) 특정 엔티티만 준영속 상태로 전환
  • em.clear() 영속성 컨텍스트를 완전히 초기화 e
  • em.close() 영속성 컨텍스트를 종료
728x90

'JPA' 카테고리의 다른 글

JPA 연관관계  (0) 2024.08.21
JPA 엔티티 매핑  (0) 2024.08.15
JPA 영속성  (0) 2024.08.15
JPA 개발  (0) 2024.08.15
JPA란?  (0) 2024.08.15