벌크 연산
● 쿼리 한 번으로 여러 테이블 로우 변경(엔티티)
● executeUpdate()의 결과는 영향받은 엔티티의 수 반환
● UPDATE, DELETE 지원
● INSERT(insert into .. select , 하이버네이트 지원)
벌크 연산 주의
● 벌크 연산은 영속성 컨텍스트를 무시하고 데이터베이스에 직접 쿼리하기때문에 아래와같이 주의하여 사용
1. 벌크 연산을 먼저 실행
2. 벌크 연산 수행 후 영속성 컨텍스트 초기화
1번 풀이 : 영속성 컨텍스트에 아무것도 들어있지 않은상태에서 벌크연산을 수행한 뒤, 조회 (영속성컨텍스트를 초기화 하는시점에 벌크연산을 수행한 뒤여야함)
2번 풀이 : 영속성 컨텍스트에 조회한 값이 있는상태에서 영속성 컨텍스트를 초기화하지 않고 디비에 조회한다고 하여도 영속성 컨텍스트의 값이 갱신되지않음.
하여 벌크 연산을 실행한 후 em.clear() 즉 영속성 컨텍스트를 초기화해줘야함.
'Jpa' 카테고리의 다른 글
spring data jpa 에서 페이징과 정렬 (0) | 2024.07.17 |
---|---|
SpirngDataJpa - Auditing (0) | 2024.07.17 |
Named 쿼리 (0) | 2024.07.12 |
JPQL - 엔티티 직접사용 (0) | 2024.07.12 |
페치 조인(fetch join) (0) | 2024.07.12 |