인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

아아흐흐비리브리님의 프로필 이미지
아아흐흐비리브리

작성한 질문수

실전! Querydsl

벌크 업데이트 시 영속성 컨텍스트 초기화 관련 질문

작성

·

264

0

안녕하세요 영한님,

어제에 이어 하나 더 질문드립니다.!

벌크 업데이트 시 영속성 컨텍스트를 거치지 않고 다이렉트로 디비에 업데이트 한다고 말씀주셨는데

여기서 질문입니당.

벌크 업데이트로 인해 디비에 업데이트가 되었으므로 하단에 기재된 em.flush는 생략해도 될 것 같은데 혹시 꼭 있어야하는 걸까요!?

답변 1

0

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

안녕하세요. 조동희님 좋은 질문입니다^^

JPA에서 플러시 발생하는 기본은 다음과 같습니다.

1. 트랜잭션 커밋

2. JPQL 쿼리 실행

3. em.flush() 강제 호출

벌크 업데이트도 2. JPQL 쿼리 실행에 해당하므로 플러시가 이미 호출 되어 있습니다^^

그래서 클리어만 해주셔도 됩니다.

단! 그럴일을 정말 없겠지만, 기본편 - 플러시를 보시면, 플러시가 동작하는 옵션을 변경할 수 있습니다.

이 옵션에 손을 대면 JPQL 쿼리를 실행해도 플러시가 호출되지 않도록 할 수 있습니다! 이런 옵션을 적용했다면, 강제로 호출해주어야 합니다^^

감사합니다!

아아흐흐비리브리님의 프로필 이미지
아아흐흐비리브리

작성한 질문수

질문하기