-
-
안녕하세요? 오늘은, 이전 포스팅에서 다뤘던, 영속성 컨텍스트의 이점 중에서, 1차캐시 중, 트랜잭션의 commit 시점에서, 내부적으로 이루어지는 flush에 대해서 알아보도록 하겠습니다.
※ JPA의 영속성과 영속성 컨텍스트/이점 등의 관련된 내용은, 아래 포스팅을 참조하시길 바라겠습니다.
JPA 영속성과 영속성 컨텍스트에 대하여!
- -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 중요한 점은,1. 객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapp
logger-debug.tistory.com
JPA 영속성 컨텍스트의 장점에 대하여!
- -안녕하세요? 오늘은, JPA에서 가장 중요한 개념인, 영속성에서 더 나아가서, 영속성 컨텍스트의 이점에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트에 대해서는, 아래 포
logger-debug.tistory.com
-
플러시 (Flush)
: 영속성 컨텍스트의 변경내용을 데이터베이스에 반영
-> 영속성 컨텍스트의 변경 사항들과 데이터베이스를 싱크하는 작업
플러시가 발생하게 되면,
: 변경 감지
: 수정된 엔티티 쓰기 지연 SQL 저장소에 등록
: 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록/수정/삭제 쿼리)
등등이 수행 된다.
※ 1차캐시는 그대로 유지
-
호출 방법
직접호출 : flush()
자동 실행 : 트랜잭션 커밋 / JPQL 쿼리 실행
-
플러시 모드 옵션
EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");
EntityManager em = emf.createEntityManager();
em.setFlushMode(FlushModeType.COMMIT);
// 커밋이나 쿼리를 실행할 때 플러시(기본값)
FlushModeType.AUTO
// 커밋 할때만 플러시
FlushModeType.COMMIT
-
중요한 키포인트 !!
플러시의 특징은,
: 영속성 컨텍스트를 비우지 않음
: 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화
: 플러시가 동작할 수 있는 이유는, 데이터베이스 트랜잭션이라는 작업 단위(개념)가 있기 때문
※ JPA는 기본적으로 데이터를 맞추거나 동시성에 관련된 것들은 데이터베이스 트랜잭션에 위임
오늘은, 이전 포스팅에서 다뤘던, 영속성 컨텍스트의 이점 중에서, 1차캐시 중, 트랜잭션의 commit 시점에서, 내부적으로 이루어지는 flush에 대해서 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
JPA 지연로딩 즉시로딩 (0) | 2024.10.17 |
---|---|
JPA 지연로딩 즉시로딩 프록시 proxy (0) | 2024.10.17 |
JPA 영속성 전이 CASCADE 고아 객체 (0) | 2024.10.15 |
JPA 영속성 영속상태와 준영속상태 (0) | 2024.10.15 |
JPA 영속성 컨텍스트의 장점에 대하여! (0) | 2024.10.15 |
JPA 영속성과 영속성 컨텍스트에 대하여! (0) | 2024.10.15 |
JPA 데이터 타입과 기본 임베디드 컬렉션에 대하여! (0) | 2024.10.14 |
JPA 키 매핑 종류와 전략에 대해서! (0) | 2024.10.14 |