[SPRING] CrudRepository와 Hibernate : 트랜잭션에 save (Entity)를 저장 (List <S>)
SPRINGCrudRepository와 Hibernate : 트랜잭션에 save (Entity)를 저장 (List )
내가 그렇게하면 어떤 변화가 있겠는가?
@Transactional
public void processData() {
List<MyEntity> entities = ....;
MyEntityRepository.save(entities);
}
대
@Transactional
public void processData() {
List<MyEntity> entities = ....;
for (MyEntity entity : entities) {
MyEntityRepository.save(entity);
}
}
기본 쿼리 및 성능면에서의 차이점은 무엇입니까?
해결법
-
==============================
1.SimpleJpaRepository에서 :
SimpleJpaRepository에서 :
@Transactional public <S extends T> List<S> More save(Iterable<S> entities) { List<S> result = new ArrayList<S>(); if (entities == null) { return result; } for (S entity : entities) { result.add(save(entity)); } return result; }
따라서 두 번째 비즈니스 메소드는 목록을 반복하고 사용자를 대신하여 save (S)를 호출한다는 의미에서 그림자 (Iterable
엔터티) Crud Repository 메서드 만 저장합니다.트랜잭션이 processData 비즈니스 메소드에서 구분되는 한 성능이나 쿼리가 실제로 실행되는 것은 아닙니다.
-
==============================
2.Ori Dar가 언급 한 바와 같이 실제로 차이점은 없습니다.
Ori Dar가 언급 한 바와 같이 실제로 차이점은 없습니다.
그러나주의해야 할 사항이 있습니다. 요소 목록을 저장하는 데 사용 된 메소드는 2.2.0.M1의
ListsaveAll (Iterableentities)로 이름이 바뀌 었습니다. repo 히스토리를 저장하고 save 메소드는 더 이상 인수를 인수로 취하지 않습니다.위의 답변이나 질문에 대한 평판이 50 점이 아니기 때문에이 변경 사항에 대한 새로운 대답을 작성해야합니다.
from https://stackoverflow.com/questions/32793403/crudrepository-and-hibernate-savelists-vs-saveentity-in-transaction by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 바람둥이에 봄 mvc 응용 프로그램에 대한 응용 프로그램 루트 변경 (0) | 2019.03.18 |
---|---|
[SPRING] Spring 데이터 Rest : 사용자 자원 반환 (0) | 2019.03.18 |
[SPRING] Spring MVC, 하나의 설정 대신 두 개의 설정 인스턴스 (0) | 2019.03.17 |
[SPRING] Spring 3 / Spring Security 2.0.5에서 세션 시간 초과 감지 (0) | 2019.03.17 |
[SPRING] 스프링 데이터 REST 투영 뒤에서 생성 된 SQL 쿼리 수정 (0) | 2019.03.17 |