개요

벌크 연산

변경 감지(Drity Checking)로 처리하면 안될까?

벌크 연산 주의

쿼리 한번으로 대량 데이터 수정 및 삭제

/**
 * 멤버 나이가 28 보다 작다면 멤버 이름을 "비회원" 으로 변경
 */
@Test
void bulkUpdate() {
    //given

    //when
    long count = jpaQueryFactory
            .update(member)
            .set(member.userName, "비화원")
            .where(member.age.lt(28))
            .execute();

    em.clear(); // 영속성 컨텍스트 초기화

    //then
    List<Member> result = jpaQueryFactory
            .selectFrom(member)
            .fetch();

    for (Member findMember : result) {
        System.out.println("findMember = " + findMember);
    }
}

@Test
void bulkDelete() {
    //given

    //when
    long count = jpaQueryFactory
            .delete(member)
            .where(member.age.gt(18))
            .execute();
    //then
}

기존 숫자에 2 더하기