티스토리 뷰
반응형
벌크 연산
- 쿼리 한 번으로 여러 테이블 로우 변경(엔티티)
- executeUpdate()의 결과는 영향받은 엔티티 수 반환
- update, delete 지원
- insert(insert into .. select, 하이버네이트 지원)
String qlString = "update Product p" +
"set p.price = p.price * 1.1 " +
"where p.stockAmount < :stockAmount";
int rsCnt = em.createQuery(qlString)
.setParameter("stockAmount", 10)
.executeUpdate();
int rsCnt = em.createQuery("update Member m set m.age = 20")
.executeUpdate();
벌크 연산 주의
벌크 연산은 영속성 컨텍스트를 무시하고 데이터베이스에 직접 쿼리 실행
- 벌크 연산을 먼저 실행
- 벌크 연산 수행 후 영속성 컨텍스트 초기화
//flush까지 된 상태
int rsCnt = em.createQuery("update Member m set m.age = 20")
.executeUpdate();
//영속성 컨텍스트 초기화
em.clear();
연관 포스팅: https://smujihoon.tistory.com/278
반응형
'Back-end > JPA' 카테고리의 다른 글
자바 ORM 표준 JPA 기본값 타입, 임베디드 타입 (0) | 2023.06.01 |
---|---|
자바 ORM 표준 JPA 프록시 (0) | 2023.05.31 |
자바 ORM 표준 JPA fetch join (0) | 2023.05.29 |
JPA @MappedSuperclass (0) | 2023.05.28 |
자바 ORM 표준 JPA 연관관계 (0) | 2023.05.27 |