-
-
안녕하세요? 오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보도록 하겠습니다.
-
벌크 연산
: 쿼리 한번으로, 여러 테이블 로우 변경
: executeUpdate의 결과는 영향받은 엔티티 수를 반환
: Update / Delete 지원
: 하이버네이트는 Insert ( insert into .. select ) 지원
샘플 쿼리)
EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
// Flush 자동 호출 : commit / [쿼리날라갈때] / 강제호출
String jpql = "UPDATE 엔티티 e"
+ "SET 업데이트컬럼 = 변경값"
+ "WHERE 조건";
int resultCount = em.createQuery(jpql)
.setParameter(조건파라메터명, 조건값)
.executeUpdate();
System.out.println("Result Count = " * resultCount);
// 현재 상테는, 영속성 컨텍스트 값은 update 이전 상태 값
// 벌크 연산 후에는, 영속성 컨텍스트 초기화가 필수
em.clear();
// 영속성 컨텍스트 초기화 후, 데이터 재조회
tx.commit();
벌크연산은,
: 영속성 컨텍스트를 무시하고, DB에 직접 쿼리
> 벌크 연산을 먼저 실행
or
> 벌크 연산을 수행 후, 영속성 컨텍스트 초기화
※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.
https://logger-debug.tistory.com/entry/JPA-JPQL-%EA%B2%BD%EB%A1%9C-%ED%91%9C%ED%98%84%EC%8B%9D
오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
자바에서 서버의 호스트명을 가져오는 방법 (0) | 2024.11.13 |
---|---|
자바에서 경로 다루기: File, Request, Session을 활용한 경로 처리 방법 (0) | 2024.11.12 |
자바 AWS SNS ( Amazon Simple Notification Service ) ! 아마존 문자 서비스 구현 ! (0) | 2024.10.25 |
자바 AWS SES ( Amazon Simple Email Service ) 아마존 이메일 서비스 구현 ! (0) | 2024.10.25 |
JPA 쿼리 패치 조인 JPQL FETCH JOIN (0) | 2024.10.24 |
JPA JPQL 경로 표현식 (0) | 2024.10.23 |
JPA JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 (0) | 2024.10.18 |
JPA 쿼리 JPQL 페이징 조인 서브쿼리 (0) | 2024.10.18 |