인프런 커뮤니티 질문&답변

감바스님의 프로필 이미지
감바스

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

정리

플러시와 persist()에 대해 질문 있습니다.

해결된 질문

작성

·

50

0

  1. 플러시가 발생하여 쓰기 지연 저장소에 쌓여있던 쿼리들이 DB에 보내지게 되면 쓰기 지연 저장소에 쌓여있던 쿼리들은 삭제되나요 아니면 그대로 남아있나요?

  2. pk 생성 전략이 identity일 경우 persist()할때 쓰기 지연 저장소로 가는게 아니라 DB로 바로 보내지고 id 값을 얻어온다고 이해 했습니다. 그러면 persist()할때 생긴 insert into 쿼리가 DB로 보내지는데 이때 커밋하기전이라 DB에는 반영이 안되는건가요? DB 내부에서 버퍼? 같은 곳에서 보관했다가 커밋했을때 insert into 쿼리가 작동되는건지 궁금합니다.

     

답변 1

0

안녕하세요. 감바스님, 공식 서포터즈 y2gcoder입니다.

  1. 플러시 후에는 쓰기 지연 저장소가 비워지기 때문에, 쿼리들도 삭제된다고 이해하고 있습니다!

  2. 이 부분은 트랜잭션 이전까지는 각 DB 커넥션을 통해 생성된 DB 세션에서 가지고 있다가 커밋 시 해당 내용은 DB에 반영한다고 이해해주시면 감사하겠습니다! 더 자세한 내용은 영한님의 스프링 DB 1편 - 데이터 접근 핵심 원리3.트랜잭션 이해 를 학습해보시길 권해드립니다 🙂

 

감사합니다.

감바스님의 프로필 이미지
감바스

작성한 질문수

질문하기