FlushModeType

    @Modifying 의 flushAutomatically 속성을 명시해야 하는 이유

    개요 @Modifying 어노테이션을 사용하다가 생긴 이슈를 해결하며 얻은 지식을 작성해보고자 합니다. 일단 먼저 정답부터 이야기하자면, hibernate 의 FlushModeType 설정의 기본 값인 Auto 일 때, JPQL 실행 전에 모든 쓰기 지연 저장소의 쿼리들이 flush 되는 줄로 잘못 알고 있어서 발생한 이슈입니다. JPQL 실행 전에 쓰기 지연 저장소에 있는 쿼리 중 JPQL 과 관련된 엔티티에 대해서만 flush 합니다. 더 자세한 설명은 아래에서 이어서 하도록 하겠습니다. @Modifying 이란 @Modifying 이 무엇인지부터 먼저 알아보겠습니다. @Modifying 어노테이션은 @Query를 이용하여 INSERT, UPDATE, DELETE쿼리를 작성할 경우 사용해줘야하는 어노..