1) 쿼리 한번으로 대량 데이터 수정
@Test
public void bulkUpdate(){
long count = queryFactory
.update(member)
.set(member.username, "비회원")
.where(member.age.lt(28))
.execute();
}
2) 기존 숫자에 1 더하기
@Test
public void bulkAdd(){
long count = queryFactory
.update(member)
.set(member.age, member.age.add(1))
.execute();
}
3) 쿼리 한번으로 대량 데이터 삭제
@Test
public void bulkDelete(){
long count = queryFactory
.delete(member)
.where(member.age.gt(18))
.execute();
}
※ JPQL 배치와 마찬가지로, 영속성 컨텍스트에 있는 엔티티를 무시하고 실행되기 때문에 배치 쿼리를 실행하고 나면 영속성 컨텍스트를 초기화 하는 것이 안전하다.
'개발이 좋아서 > QueryDSL이 좋아서' 카테고리의 다른 글
20장 순수 JPA 리포지토리와 Querydsl (0) | 2023.05.18 |
---|---|
19장 SQL function 호출하기 (0) | 2023.05.17 |
17장 동적 쿼리 - Where 다중 파라미터 사용 (0) | 2023.05.17 |
16장 동적 쿼리 - BooleanBuilder 사용 (0) | 2023.05.17 |
15장 프로젝션과 결과 반환 - @QueryProjection (0) | 2023.05.15 |