CrudRepository和Hibernate:在事务中保存(List )vs save(Entity)

如果我这样做会有什么不同:

@Transactional public void processData() { List entities = ....; MyEntityRepository.save(entities); } 

 @Transactional public void processData() { List entities = ....; for (MyEntity entity : entities) { MyEntityRepository.save(entity); } } 

底层查询和性能有什么区别?

来自SimpleJpaRepository

 @Transactional public  List More save(Iterable entities) { List result = new ArrayList(); if (entities == null) { return result; } for (S entity : entities) { result.add(save(entity)); } return result; } 

因此,您的第二个业务方法只会影响save(Iterable entities) Crud Repository方法,因为它迭代列表并代表您调用save(S)

只要事务processData业务方法划分开来,性能或执行的查询就没有真正的区别。