Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

벌크 연산 본문

인프런/[인프런] QueryDsl

벌크 연산

Seung__ 2021. 9. 4. 00:10

1. 쿼리 한번으로 대량 데이터 수정 : 벌크 연산


  • 벌크연산은 영속성 컨텍스트를 거치지 않고 바로 DB에 반영함
  • 즉 벌크연산 후 영속성 컨텍스트와 DB가 다르다.
  • 벌크 연산 후 영속성 컨텍스트를 초기화 해주자.
    @Test
    public void bulkUpdate(){
        /**
         * member1 = 10 -> 비회원
         * member2 = 20 -> 비회원
         * member3 = 30 -> 유지
         * member4 = 40 -> 유지
         */
        long count = queryFactory
                .update(member)
                .set(member.username, "비회원")
                .where(member.age.lt(28))
                .execute();
        
        em.flush();
        em.clear();
    }
update
        Member member1 
    set
        member1.username = ?1 
    where
        member1.age < ?2

 

 

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();
    }

 

4. GitHub : 210903 Bulk operation


 

GitHub - bsh6463/Querydsl

Contribute to bsh6463/Querydsl development by creating an account on GitHub.

github.com

 

Comments