Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Spring Boot
- jpa
- java
- 김영한
- SpringBoot
- springdatajpa
- 자바
- Servlet
- spring
- JDBC
- 알고리즘
- db
- 백준
- 스프링
- http
- Proxy
- Greedy
- Thymeleaf
- 인프런
- 스프링 핵심 원리
- Exception
- 스프링 핵심 기능
- 그리디
- QueryDSL
- kotlin
- JPQL
- transaction
- pointcut
- AOP
- Android
Archives
- Today
- Total
개발자되기 프로젝트
벌크 연산 본문
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
'인프런 > [인프런] QueryDsl' 카테고리의 다른 글
JPA Repository와 Querydsl (0) | 2021.09.04 |
---|---|
SQL Function 호출 (0) | 2021.09.04 |
동적쿼리 : BooleanBuilder, Where 다중 파라미터 (0) | 2021.09.03 |
프로젝션과 결과 반환 : DTO, @QueryProjection (0) | 2021.09.03 |
프로젝션과 결과 반환 - DTO 조회 (0) | 2021.09.03 |
Comments