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

요니님의 프로필 이미지
요니

작성한 질문수

실전! 스프링 데이터 JPA

벌크성 수정 쿼리

아래 질문 글 Yong.K 님의 질문의 답변에 관한 질문글 입니다 - flush관련

작성

·

255

1

아래 질문글 Yong.K 님의 글에 대한 답변으로 ,

JPQL이 실행되기 전 flush가 되지만

이때 flush는 em.flush() 처럼 영속성 컨텍스트를 완전히 flush 시키는 것이 아니라 ,

실행될 JPQL과 관련된 엔티티만 부분적으로 fluish 시키는 것이라고 설명해주셨습니다.

하지만 이렇게 부분적으로만 flush 시킨다면 ,

벌크연산 후 clearAutomatically에 의해 영속성 컨텍스트가 비워져 버리면 문제가 생길 수 있어,

벌크연산의 옵션으로 flushAutomatically가 있고 - 이 옵션을 활성화 시키면 em.flush()를 호출한 것 처럼 완전히 flush 되는것으로 이해하였습니다.

그렇다면 벌크연산 사용시 flushAutomatically 옵션을 비활성화 시키고 - clearAutomatically 옵션만을 활성화 시킨다면 여전히 문제가 발생할 여지는 남아있는 것이 맞는지 궁금합니다.

즉 그렇다면 결과적으로 clearAutomatically 옵션만 활성화 시키는게 아니라 , flushAutomatically 옵션도 함께 활성화시켜야 하는것은 아닌지 궁금합니다.

답변 1

1

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

안녕하세요. khd1692님

답변에서 설명드린 것 처럼 문제가 될 수 있을 것 같은데요.

해당 내용이 정말 문제가 되는지 코드로 직접 테스트 해보시고, 그 결과와 코드를 공유해주시면 좋겠습니다.

감사합니다.

요니님의 프로필 이미지
요니

작성한 질문수

질문하기