[QueryDSL] 벌크 연산
포스트
취소

[QueryDSL] 벌크 연산

벌크 연산

  • QueryDSL에서도 여러 개의 엔티티를 수정/삭제하는 벌크 연산을 수행할 수 있다.
  • 벌크 연산이기 때문에 실행 후 영속성 컨텍스를 비워주는 것이 좋다.

수정 연산

  • update(인스턴스) 메소드를 통해 수정할 테이블을 지정한다.
  • set(필드, 값) 메소드를 통해 수정할 필드 및 변경할 값을 지정한다.
  • where(Predicate... o) 메소드를 통해 변경될 데이터들의 조건을 지정한다.
//데이터 수정
long count = 
    queryFactory
    .update(member)
    .set(member.username, "비회원")
    .where(member.age.lt(28))
    .execute();

em.flush();
em.clear();

삭제 연산

  • delete(인스턴스) 메소드를 통해 수정할 테이블을 지정한다.
  • where(Predicate... o) 메소드를 통해 삭제될 데이터들의 조건을 지정한다.
//데이터 삭제
long count = 
    queryFactory
    .delete(member)
    .where(member.age.gt(18))
    .execute();

em.flush();
em.clear();

출처

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.