본문 바로가기
공부/Spring

[스프링 데이터 JPA] 벌크성 수정 쿼리에 대해 알아보자

by JERO__ 2022. 8. 25.

벌크성 수정 쿼리는 언제사용될까?

벌크성 수정 쿼리는 한 번에 모든 내용을 변경해야 할 때 사용한다!

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이다. 이 옵션이 없다면 영속성 컨텍스트에 과거 값이 남아서 문제가 될 수 있다.
    • 영속성 컨텍스트에 엔티티가 없는 상태에서 벌크 연산을 실행한다.
    • 벌크 연산 이후 영속성 컨텍스트를 초기화한다.

 

댓글