728x90
재고가 10개 미만인 모든 상품의 가격을 10% 상승하려면?
JPA 변경 감지 기능으로 실행하려면 너무 많은 SQL 실행
- 1. 재고가 10개 미만인 상품을 리스트로 조회한다.
- 2. 상품 엔티티의 가격을 10% 증가한다.
- 3. 트랜잭션 커밋 시점에 변경 감지가 동작한다.
변경된 데이터가 100건이라면 100번의 UPDATE SQL 실행
벌크 연산

- 쿼리 한 번으로 여러 테이블 로우 변경(엔티티)
- executeUpdate()의 결과는 영향받은 엔티티 수 반환
- UPDATE, DELETE 지원
- INSERT(insert into.. select, 하이버네이트 지원)
벌크 연산 - 주의
- 벌크 연산은 영속성 컨텍스트를 무시하고 데이터베이스에 직접 쿼리
- EX) 벌크 연산은 DB에 직접 쿼리를 바로 실행해주기 때문에 애플리케이션 값과, DB값이 다를 수가 있다.
해결 방안
- 벌크 연산을 먼저 실행
- 벌크 연산 수행 후 영속성 컨텍스트 초기화

728x90
'자바 ORM 표준 JPA 프로그래밍(인프런)' 카테고리의 다른 글
| Ch01. JPA 소개 - JPA 소개 (0) | 2022.04.24 |
|---|---|
| Ch01. JPA 소개 - SQL 중심적인 개발의 문제점 (0) | 2022.04.24 |
| Ch11. 객체지향 쿼리 언어2(중급 문법) - Named 쿼리 (0) | 2021.12.18 |
| Ch11. 객체지향 쿼리 언어2(중급 문법) - 엔티티 직접 사용 (0) | 2021.12.18 |
| Ch11. 객체지향 쿼리 언어2(중급 문법) - 다형성 쿼리 (0) | 2021.12.18 |