작성
·
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님
답변에서 설명드린 것 처럼 문제가 될 수 있을 것 같은데요.
해당 내용이 정말 문제가 되는지 코드로 직접 테스트 해보시고, 그 결과와 코드를 공유해주시면 좋겠습니다.
감사합니다.