티스토리 뷰

Back-end/JPA

자바 ORM 표준 JPA 벌크 연산

이안_ian 2023. 5. 30. 13:29




반응형

벌크 연산

  • 쿼리 한 번으로 여러 테이블 로우 변경(엔티티)
  • 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

 

출처 : https://www.inflearn.com/course/ORM-JPA-Basic

반응형

'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
댓글
반응형
최근에 달린 댓글
글 보관함
Total
Today
Yesterday
최근에 올라온 글
«   2024/04   »
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