본문 바로가기
IT/Java

JPA메서드 save 와 saveAll 비교

by 성준하이 2024. 1. 19.
반응형

Entity 를 사용하여 save를 할 경우 정상일 경우라면 insert 가 된다.

saveAll 함수를 사용하게 될경우엔

List<Entity> 를 형으로 받아서 처리를 해주고, 리스트를 bulk insert 처럼 삽입을 할수 있다.

 

둘의 성능 차이가 궁금해서 비교해보았다.

 

결국 SaveAll 함수 내부 로직을 보면

@Transactional
@Override
public <S extends T> List<S> saveAll(Iterable<S> entities) {

     Assert.notNull(entities, "Entities must not be null");

     List<S> result = new ArrayList<>();

     for (S entity : entities) {
          result.add(save(entity));
     }

     return result;
}

 

이와 같다.

 

save를 for 문으로 묶었을 뿐이다.

 

추가의 성능 기대는 따로 안하는게 좋을것 같다.

 

상황에 따라서 필요한 쿼리 메서드를 적절히 사용하면 될듯 하다.

반응형

댓글