강의

멘토링

로드맵

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

jaesungyoun님의 프로필 이미지
jaesungyoun

작성한 질문수

실전! 스프링 데이터 JPA

save() vs saveAndFlush DB 통신 횟수

작성

·

8

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]

영한님 안녕하세요.

Spring Data JPA가 제공하는 save, saveAndFlush 메서드에 대해 궁금한 점이 있는데요.

흔히들 saveAndFlush는 save와 달리 트랜잭션 커밋시점이 아닌, 영속성 컨텍스트 변경 사항을 즉각 DB에 반영하여, DB 통신이 증가한다는 단점이 있다고 합니다.

for (int i = 0; i < 3; i++) {
    repository.save(entity);
}    

그런데, 제가 의문이 드는 점은 save 메서드도 위와 같은 상황이 있을 때,

커밋 시점에 DB에 flush를 하기는 하지만, batch insert가 아니기 때문에 DB 통신 자체는 단 건으로 총 3번 일어나는 것 아닌가요?

따라서, DB 통신 자체에서 saveAndFlush가 얻는 이점이 아니라, COMMIT 쿼리 횟수에서만 이점이 있다고 생각하는데, 이 생각에서 잘못된 부분이 있을까요?

 

감사합니다

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
jaesungyoun님의 프로필 이미지
jaesungyoun

작성한 질문수

질문하기