본문 바로가기
공부/Spring

QueryDSL에서 수정, 삭제 벌크연산 하는방법을 알아보자

by JERO__ 2022. 8. 26.

수정, 삭제 배치쿼리를 해보자

배치쿼리를 적용한 경우 JPQL 배치와 마찬가지로, 영속성 컨텍스트에 있는 엔티티를 무시하고 실행되기 때문에 배치 쿼리를 실행하고 나면 영속성 컨텍스트를 초기화 하는 것이 안전하다.

쿼리 한번으로 대량 데이터를 수정해보자

1. 수정 예제

  • 비회원으로 변경(28이하)

  • 더하기
long count = queryFactory 
	.update(member)
	.set(member.age, member.age.add(1))
	.execute();
  • 곱하기
long count = queryFactory 
	.update(member)
	.set(member.age, member.age.multiply(2))
	.execute();

2. 삭제 예제

long count = queryFactory
	.delete(member)
	.where(member.age.gt(18))
	.execute();

 

댓글