-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
벌크 연산시 flush 호출 여부에 대해 궁금한 점이 있습니다.
20.02.03 23:45 작성 조회수 181
2
안녕하세요. 선생님 벌크연산 강의 중에 질문이 있습니다.
JPA 프로그래밍 책에서 JPQL 실행 시 플러시가 자동 호출되어서 영속성 컨텍스트에 있는 쿼리문이 db에 동기화 되는걸로 알고 있는데 벌크 연산은 update 쿼리이기 때문에 자동으로 플러시가 호출되지 않아서 강제로 플러시를 호출해줘야 되는건가요? 이 부분에 혼동이 있어서 질문드립니다.
답변을 작성해보세요.
4
김영한
지식공유자2020.02.04
안녕하세요 a79007714님
혹시 강의 어디 부분인지 이야기 부탁드려요^^ (몇분인지 말씀해주시면 좋습니다^^!)
참고로 update도 JPQL이기 때문에 플러시가 호출은 됩니다.
그러니까 플러시가 호출된 다음에 update 벌크 쿼리가 실행되는 것이지요.
그런데 이 update 벌크 쿼리가 영속성 컨텍스트에 있는 엔티티는 무시하고 바로 데이터베이스에 있는 데이터에 영향을 줍니다.
그래서 update 벌크 연산이 실행되고 나면 데이터베이스에 있는 데이터와 영속성 컨텍스트의 데이터가 달라지게 됩니다^^!
답변 1