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

정현도님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

벌크성 수정 쿼리

em.flush() 궁금한 게 있습니다.

해결된 질문

21.05.25 18:04 작성

·

318

2

12분 쯤

벌크연산에서 flush()를 날린 뒤에 벌크연산을 수행하니 db에는 41살, 영속성 컨텍스트에는 40살인 채로 남고

그 상태에서 명시적으로 em.flush()를 날리면 db에 40살이 찍히리라 예상 했는데...

flush()할 때 단순히 DB와 동기화하는 게 아니라 변경 감지를 통해 쓰기 지연된 부분만 내보내는 것으로 이해했는데 비슷한가요?

답변 1

6

김영한님의 프로필 이미지
김영한
지식공유자

2021. 05. 25. 23:18

안녕하세요. 현도님

엔티티에 직접적인 변경내용이 있어야 flush() 시점에 변경 감지의 대상이되어서, 변경된 내용을 반영합니다.

그런데 벌크 연산은 엔티티에 영향을 주지 않아서 이런 결과가 나옵니다.

감사합니다.

정현도님의 프로필 이미지
정현도
질문자

2021. 05. 25. 23:28

감사합니다^^