지난번에는 QueryDSL에서 벌크연산을 위한 글을 작성했는데,
이번에는 JPQL에서 벌크연산을 위해서 기록을 남기기 위해 작성하려고 한다.
@Modifying
@Query 어노테이션을 이용해서 JPQL을 사용할 때 @Query 어노테이션 위에 @Modifying 을 추가해야한다.
간단하게 데이터 처리할 때 유용하다.
@Modifying에는 clearAutomatically, flushAutomatically 두개의 속성을 추가로 설정할 수 있다.
clearAutomatically
이 속성을 true로 하면 @Query가 실행된 후 1차 캐시를 clear한다. 1차 캐시를 clear한다는 것은 영속성 컨텍스트에 데이터가 clear 된다는 것이고 그렇게되면 DB의 쿼리가 추가로 발생하게 된다.
flushAutomatically
이 속성을 true로 하면 @Query가 실행되기 전 쓰기 지연 저장소에 남아있는 쿼리를 flush한다.
'개발 관련 > Spring' 카테고리의 다른 글
[Spring Batch] - Job, Tasklet Step, Chunk Step 개념 (0) | 2023.07.28 |
---|---|
[Spring Data JPA & Querydsl] - QuerydslPredicateExecutor 사용시 javax.persistence.noresultexception 오류 원인 (0) | 2023.07.23 |
[Spring Framework] - 제어의 역전 (IoC), 의존성 주입(DI) 과 OCP, DIP (0) | 2023.02.18 |
[JPA] - 영속성 컨텍스트에 대해 (0) | 2023.02.09 |
[Spring Boot] 배포시 오류: java.lang.NoClassDefFoundError (0) | 2022.11.28 |