• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

21.05.25 18:04 작성 조회수 304

2

12분 쯤

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

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

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

답변 1

답변을 작성해보세요.

6

안녕하세요. 현도님

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

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

감사합니다.

정현도님의 프로필

정현도

질문자

2021.05.25

감사합니다^^

채널톡 아이콘