728x90 반응형 EntityManager1 batch insert하기 Spring Data JPA saveAll() vs 네이티브 쿼리 두 방식의 가장 큰 차이는 영속성 컨텍스트 사용 유무(메모리)와 동작 방식. Spring Data JPA에서 saveAll(Iterable)은 내부적으로 하나하나 save()를 호출하는 구조.for문 돌면서 persist(insert) 또는 merge(update)를 반복. ??? : saveAll 안쓰고 네이티브 쿼리 써도 @Transactional 을 쓰기 때문에 jdbc 버퍼에 저장되니까 메모리 쓰는건 똑같지않아? List list = createMillionEntities(); // 100만 개 생성myRepository.saveAll(list); saveAll()은 단순히 SQL만 실행하는 게 아니라 다음을 함1. 엔티티 객체 생성2. 모두 영속성 컨텍스트에 등록3. 변경 여부 추적(더티 .. 2025. 4. 4. 이전 1 다음 728x90 반응형