쿼리 한번으로 대량 데이터 수정
@Test
public void bulkUpdate() {
long count = queryFactory
.update(member)
.set(member.username, "비회원")
.where(member.age.lt(28))
.execute();
}
기존 숫자에 1 더하기
long count = queryFactory .update(member)
.set(member.age, member.age.add(1))
.execute();
곱하기: multiply(x)
쿼리 한번으로 대량 데이터 삭제
long count = queryFactory
.delete(member)
.where(member.age.gt(18))
.execute();
주의: JPQL 배치와 마찬가지로, 영속성 컨텍스트에 있는 엔티티를 무시하고 실행되기 때문에 배치 쿼리를 실행하고 나면 영속성 컨텍스트를 초기화 하는 것이 안전하다.
출처 : 김영한 JPA 스프링 데이터 강의
'Querydsl' 카테고리의 다른 글
실무 활용 - 순수 JPA와 Querydsl (0) | 2022.07.26 |
---|---|
SQL function 호출하기 (0) | 2022.07.26 |
동적 쿼리 - Where 다중 파라미터 사용 (0) | 2022.07.25 |
동적 쿼리 - BooleanBuilder 사용 (0) | 2022.07.25 |
프로젝션과 결과 반환 - @QueryProjection (0) | 2022.07.25 |