Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 기본값 타입
- 세션 고정 보호
- 임베디드 타입
- 세션 생성 정책
- Spring Security
- TABLE
- Remember-me
- @MappedSuperclasss
- MySQL
- 값 타입 컬렉션
- spring jpa
- JPQL
- 값 타입 비교
- 기본 키 매핑
- SessionManagementFilter
- 즉시 로딩
- ddl-auto
- AnonymousAuthenticationFilter
- 지연 로딩
- field column mapping
- orphanRemovel
- form login
- 동시 세션 제어
- 양방향 매핑
- concurrentsessionfilter
- 객제지향 쿼리 언어
- 다대다
- 상속관계 매핑
- Database
- jpa
Archives
- Today
- Total
hoondev
[Spring JPA] 플러시 본문
플러시
플러시는 영속성 컨텍스트의 변경내용을 DB에 동기화하는 작업이다.
플러시가 일어나면 더티 체킹(변경 감지), 수정된 엔티티를 쓰기 지연 SQL 저장소에 저장 후 DB에 쿼리 전송 같은 작업이 일어난다.
플러시 하는 방법
- em.flush(): 직접 호출
- 트랜잭션 커밋: 플러시 자동 호출
- JPQL쿼리 실행: 플러시 자동 호출
JPQL 쿼리 실행 시 플러시가 자동으로 호출되는 이유
영속성 컨텍스트에 있지만 플러시는 되지 않은 객체를 찾는 쿼리 날린다고 가정해 보자. 플러시 되지 않은 객체는 DB에 값이 없으므로 조회되지 않는다. 그럼 이 쿼리는 아무것도 찾지 못할 것이다. 이처럼 객체를 찾는 쿼리를 성공시키기 위해서 플러시를 호출한다.
모드 옵션
- FlushModeType.AUTO: 커밋이나 쿼리를 실행할때 플러시 (기본값)
- FlushModeType.COMMIT: 커밋할때만 플러시
Reference
'Spring JPA' 카테고리의 다른 글
[Spring JPA] 데이터베이스 스키마 자동 생성 (0) | 2023.01.20 |
---|---|
[Spring JPA] 객체와 테이블 매핑 (0) | 2023.01.19 |
[Spring JPA] 준영속 (0) | 2023.01.18 |
[Spring JPA] 영속성 컨텍스트 (0) | 2023.01.16 |
[Spring JPA] ORM, JPA (0) | 2023.01.13 |
Comments