반응형
이 포스팅에서 작성하는 내용은 자바 ORM 표준 JPA 프로그래밍 (김영한 지음) 에서 발췌하였습니다.
1. 플러시
- 영속성 컨텍스트의 변경 내용을 DB에 반영
- 트랜잭션이 커밋될 때 발생 (그 외에도 가능)
- 쉽게 말해서, JPA와 데이터베이스를 서로 맞추는 과정
- 참고로 플러시를 해도 1차 캐시, 영속성 컨텍스트는 지워지지 않는다.
1) 플러시 호출 방법
- 직접 호출 : em.flush();
- 트랜잭션 커밋(플러시 자동 호출) : tx.commit();
- JPQL 쿼리 실행(플러시 자동 호출)
2) 플러시 모드 옵션
// 커밋이나 쿼리를 실행할 때 플러시 (기본값)
em.setFlushMode(FlushModeType.COMMIT);
// 커밋할 때만 플러시 (JPQL 시 자동 호출, 직접 호출 막을 수 있음)
em.setFlushMode(FlushModeType.COMMIT);
2. 준영속 상태
- 영속 상태에서 detach로 인해 영속성 컨텍스트에서 분리된 상태
- 영속성 컨텍스트가 제공하는 기능을 사용할 수 없음
1) 준영속 상태 만드는 방법
- 특정 엔티티만 준영속 상태로 전환 : em.detach(entitiy)
- 영속성 컨텍스트를 완전히 초기화 : em.clear()
- 영속성 컨텍스트를 종료 : em.close()
반응형
'BE > JPA' 카테고리의 다른 글
[JPA] 9. 기본키 매핑 (0) | 2022.04.17 |
---|---|
[JPA] 8. 엔티티 매핑 (0) | 2022.04.13 |
[JPA] 6. 영속성 컨텍스트란? (0) | 2022.04.11 |
[JPA] 5. JPA에서 리스트를 조회해보자 (0) | 2022.04.05 |
[JPA] 4. JPA 맛보기 (0) | 2022.03.31 |