[Spring] JPA flush
·
Back end/Spring Project
1. flush의 개념flush는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 과정입니다.여기서 중요한 점은 영속성 컨텍스트를 비우지 않는다는 것입니다.즉, 1차 캐시(영속성 컨텍스트)는 그대로 유지되며, 단순히 SQL 저장소에 쌓여있던 쿼리들이 데이터베이스로 전송됩니다.2. flush의 특징1차 캐시(영속성 컨텍스트)는 유지됨→ clear()처럼 캐시를 비우지 않습니다.쓰기 지연 SQL 저장소의 쿼리를 DB에 반영→ em.persist()나 entity.setName() 등으로 변경된 내용을 DB에 즉시 보냅니다.트랜잭션을 끝내는 것이 아님→ flush() 호출 후에도 트랜잭션은 여전히 활성 상태입니다.동기화 목적→ JPQL 실행 전, 트랜잭션 커밋 직전에 DB와 영속성 컨텍스트를 맞추기 위해..