• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

save() 와 saveAndFlush() 차이

23.07.04 12:34 작성 조회수 329

0

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

[질문 내용]
안녕하세요. 정확히 강의 내용과 일치하는 내용은 아니지만 JPA 를 공부하다 궁금한 부분이 생겨 질문드립니다.
save() 와 saveAndFlush() 의 차이점은
saveAndFlush() 시에는 즉시 DB 로 flush 가 일어나 DB 에 변경내역이 동기화되는 차이가 있는 것으로 알고 있습니다.
하지만 그렇다고 해서 commit 이 일어난 것은 아니기 때문에 다른 트랜잭션에서 변경된 내용을 확인할 수 있는 것도 아닐 것 같습니다. (READ UNCOMMIT 격리수준이 아니라면)
변경된 내역을 확인 가능한 곳은 같은 트랜잭션에 한정된 부분이라면 굳이 flush 를 하지 않아도 1차캐시와 쓰기지연저장소에서 확인이 가능한 부분일 것 같은데 saveAndFlush() 를 왜 사용해야 하는 것인지 궁금합니다.

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2023.07.06

안녕하세요. jaden님, 공식 서포터즈 코즈위버 입니다.

save()가 아닌 saveAndFlush()는 저도 아직 실제 작업에서 사용해본적은 없으나 테스트를 위해 사용할 순 있을것 같습니다. 테스트 중 변경한 데이터를 모두 데이터베이스에 동기화 한 후 이를 확인하고 싶을 때, save() 와 flush() 를 한 번에 호출할 수 있겠지요 :)

감사합니다.

jaden님의 프로필

jaden

질문자

2023.07.06

답변 감사합니다. 테스트 뿐만 아니라 필요로 하는 다른 상황도 있을지 궁금하긴 하네요. :)