티스토리 뷰
★ 플러시(flush)란?
- 플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영한다.
☆ 플러시 실행 후, 결과
1. 변경 감지가 동작해서 영속성 컨텍스트 내의 모든 엔티티를 스냅샷과 비교 후, 엔티티를 찾는다.
수정된 엔티티는 수정 쿼리를 만들어 쓰기 지연 SQL 저장소에 등록한다.
2. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다.
☆ 영속성 컨텍스트를 플러시하는 방법
1. em.flush()를 직접 호출한다.
- 직접 호출은 영속성 컨텍스트를 강제로 플러시한다.
테스트나 다른 프레임워크와 JPA를 함께 사용할 때를 제외하고 거의 사용하지 않는다.
2. 트랜잭션 커밋 시 플러시가 자동 호출된다.
- 트랜잭션만 커밋하면 어떤 데이터도 데이터베이스에 반영되지 않는다.
그래서 트랜잭션 커밋 전에 꼭 플러시를 호출해서 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영해야한다.
이런 문제를 방지하기 위해 JPA는 플러시를 자동 호출해야한다.
3. JPQL 쿼리 실행 시 플러시가 자동 호출된다.
- JPQL이나 Crieterial 같은 객체자향 쿼리를 호출할 때도 플러시가 실행된다.
☆ 플러시 모드 옵션
- 엔티티 매니저에 플러시 모드를 직접 지정하려면
javax.persistence.FlushModeType을 사용하면 된다.
1. FlushModeType.AUTO : 커밋이나 쿼리를 실행할 때 프러시(기본값)
- 플러시 모드를 별도로 설정하지 않으면 AUTO로 동작
따라서, 트랜잭션 커밋이나 쿼리 실행 시에 플러시를 자동으로 호출한다.
2. FlushModeType.COMMIT: 커밋할 때만 플러시
- 성능 최적화를 위해 사용할 수 있다.
자바 ORM 표준 JPA 프로그래밍 - 교보문고
스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임 | ★ 이 책에서 다루는 내용 ★■ JPA 기초 이론과 핵심 원리■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로
www.kyobobook.co.kr
'차곡차곡 > Java' 카테고리의 다른 글
| [Java] 엔티티 매핑 (1) - @Entity / @Table / 그 외 다양한 매핑 (0) | 2022.07.23 |
|---|---|
| [Java] 영속성 관리 - (5) 준영속 (0) | 2022.07.17 |
| [JAVA] JPA 영속성 관리 (3) - 영속성 컨텍스트의 특징과 장점 (0) | 2022.07.17 |
| [Java] JPA 영속성 관리 (2) - 영속성 컨텍스트 (persistence context) (0) | 2022.07.17 |
| [Java] JPA 영속성 관리(1) - 엔티티 매니저 팩토리/ 엔티티 매니저와의 관계 (0) | 2022.07.17 |
- Total
- Today
- Yesterday
- JPQL이란
- 토마호크 맛집
- 로제 파스타 맛집
- 커틀렛 맛집
- tick 만들기
- JPA애플리케이션개발코드
- React
- DDL 생성 콘솔 출력
- 엔티티매니저팩토리
- JPA 기본키 매핑 전략
- 온량 서울숲점
- fragment태그
- 데이터베이스 스키마 자동 생성
- JPA라이브러리
- 영주 한우
- 영속성 관리
- JPA
- 풍기역맛집
- 영주역 맛집
- react counter
- pip 설치 오류
- Counter 만들기
- 콘솔 창 한글 깨짐
- React를 이용한 Counter 만들기
- 엘리먼트 렌더링
- intellij 한글 깨짐
- 리액트 엘리먼트 렌더링하기
- 꾸덕꾸덕 파스타 맛집
- 버튼누르면전구이미지변하기
- 리액트 이벤트 처리하기
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
