작성
·
431
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요?
아니오
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요?
아니오
[질문 내용]
안녕하세요. 정확히 강의 내용과 일치하는 내용은 아니지만 JPA 를 공부하다 궁금한 부분이 생겨 질문드립니다.
save() 와 saveAndFlush() 의 차이점은
saveAndFlush() 시에는 즉시 DB 로 flush 가 일어나 DB 에 변경내역이 동기화되는 차이가 있는 것으로 알고 있습니다.
하지만 그렇다고 해서 commit 이 일어난 것은 아니기 때문에 다른 트랜잭션에서 변경된 내용을 확인할 수 있는 것도 아닐 것 같습니다. (READ UNCOMMIT 격리수준이 아니라면)
변경된 내역을 확인 가능한 곳은 같은 트랜잭션에 한정된 부분이라면 굳이 flush 를 하지 않아도 1차캐시와 쓰기지연저장소에서 확인이 가능한 부분일 것 같은데 saveAndFlush() 를 왜 사용해야 하는 것인지 궁금합니다.
답변 1
0
안녕하세요. jaden님, 공식 서포터즈 코즈위버 입니다.
save()가 아닌 saveAndFlush()는 저도 아직 실제 작업에서 사용해본적은 없으나 테스트를 위해 사용할 순 있을것 같습니다. 테스트 중 변경한 데이터를 모두 데이터베이스에 동기화 한 후 이를 확인하고 싶을 때, save() 와 flush() 를 한 번에 호출할 수 있겠지요 :)
감사합니다.
답변 감사합니다. 테스트 뿐만 아니라 필요로 하는 다른 상황도 있을지 궁금하긴 하네요. :)