본문 바로가기
프로그래밍/Back-end

JPA 쿼리 JPQL 벌크 연산

by @GodWin 2024. 10. 24.

-

 

-
안녕하세요? 오늘은 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-QueryDSL-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8CSQL-JDBC-MyBatis

 

JPA QueryDSL 네이티브SQL JDBC MyBatis

- -안녕하세요? 오늘은 JPA의 다양한 쿼리 방법에 대해서 알아보도록 하겠습니다. JPA에서는,JPQL ★★★JPQ CriteriaQueryDSL ★★★네이티브 SQLJDBC 직접 사용(MyBatis, SpringJdbcTemplate ...)등등 다양한 쿼

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-%EC%BF%BC%EB%A6%AC-JPQL-%ED%8E%98%EC%9D%B4%EC%A7%95-%EC%A1%B0%EC%9D%B8-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC

 

JPA 쿼리 JPQL 페이징 조인 서브쿼리

- -안녕하세요? 오늘은, JPA의 쿼리 방법 중 하나인, JQPL에 대해 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JP

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-JPQL-%ED%83%80%EC%9E%85-%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC-%EA%B8%B0%ED%83%80%EC%8B%9D-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%A1%B0%EA%B1%B4%EC%8B%9D%EA%B3%BC-%EA%B8%B0%EB%B3%B8-%ED%95%A8%EC%88%98

 

JPA JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수

- -안녕하세요? 오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.

logger-debug.tistory.com

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 경로 표현식

- -안녕하세요? 오늘은 JPA에서 JPQL의 경로 표현식 에 대해 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JPA-Quer

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-%EC%BF%BC%EB%A6%AC-%ED%8C%A8%EC%B9%98-%EC%A1%B0%EC%9D%B8-JPQL-FETCH-JOIN

 

JPA 쿼리 패치 조인 JPQL FETCH JOIN

- -안녕하세요? 오늘은 JPA에서 JPQL 패치(FETCH) 조인 에 대해 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JPA-Qu

logger-debug.tistory.com




오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.