작성
·
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 쿼리 횟수에서만 이점이 있다고 생각하는데, 이 생각에서 잘못된 부분이 있을까요?
감사합니다
답변