<aside>

Spring Data JPA에서 사용되는 어노테이션

@Query 어노테이션을 통해 작성된 변경이 일어나는 쿼리를 실행할 때 사용

@Modifying을 변경이 일어나는 쿼리와 함께 사용해야 JPA에서 변경 감지와 관련된 처리를 생략하고 더 효율적인 실행이 가능하다.

</aside>

벌크 연산

데이터베이스에서 UPDATE, DELETE 시 대량의 데이터를 한 번에 처리하기 위한 작업.

즉, JPA에서 벌크 연산은 단 건 데이터를 변경(더티 체킹)하는 것이 아닌, 여러 데이터에 변경 쿼리를 날리는 작업을 말한다.

옵션

flushAutomatically

기본 값은 false로, true면 해당 쿼리를 실행하기 전, 영속성 컨텍스트의 변경사항을 DB에 flush한다.

clearAutomatically

기본 값은 false로, true면 해당 쿼리를 실행한 후, 영속성 컨텍스트를 clear한다.

이 옵션은 true로 설정하지 않을 경우 문제가 발생할수 있다.

JPA에서는 1차 캐시라는 기능이 있다.

1차 캐시를 간단하게 설명하면 영속성 컨텍스트에 있는 1차 캐시를 통해 엔티티를 캐싱하고, DB의 접근 횟수를 줄임으로써 성능 개선 한다.