벌크성 수정 쿼리는 언제사용될까?
벌크성 수정 쿼리는 한 번에 모든 내용을 변경해야 할 때 사용한다!
JPA를 사용한 벌크 수정 쿼리
스프링 데이터 JPA를 사용한 벌크 수정 쿼리
@Modifying(clearAutomatically = true)
@Query("update Member m set m.age = m.age + 1 where m.age >= :age")
int bulkAgePlus(@Param("age") int age);
주의사항
- @Modifying 어노테이션을 넣어줘야 한다! 사용하지 않으면 예외가 발생한다.
- 벌크성 쿼리를 실행 후 영속성 컨텍스트를 초기화 해주어야 한다. @Modifying(clearAutomatically = true) 기본값은 false이다. 이 옵션이 없다면 영속성 컨텍스트에 과거 값이 남아서 문제가 될 수 있다.
- 영속성 컨텍스트에 엔티티가 없는 상태에서 벌크 연산을 실행한다.
- 벌크 연산 이후 영속성 컨텍스트를 초기화한다.
'공부 > Spring' 카테고리의 다른 글
JPA Hint를 통해 성능최적화를 할까? (0) | 2022.08.25 |
---|---|
@EntityGraph을 통해 간편히 페치조인을 적용해보자 (0) | 2022.08.25 |
스프링 데이터 JPA에서 페이징과 정렬을 해보자 (0) | 2022.08.25 |
스프링 데이터 JPA의 반환타입을 알아보자 (0) | 2022.08.25 |
[스프링 데이터 JPA] 파라미터 바인딩 종류와 컬렉션 파라미터 바인딩 (0) | 2022.08.25 |
댓글