我不得不猜测,如果没有您的代码,我相信这与为所保存的每个对象创建新事务的开销有关,而与之
save相比则要打开一个事务
saveAll。
注意的定义,
save并且
saveAll它们都用注释
@Transactional。如果您的项目配置正确(由于将实体保存到数据库,这似乎是事实),则意味着只要调用这些方法之一就将创建事务。如果您
save在循环中进行调用,这意味着每次调用都会创建一个新的事务
save,但是在
saveAll有一个调用的情况下,则创建一个事务,而与保存的实体数量无关。
我假设测试本身不是在事务内运行,如果要在事务内运行,则所有保存调用都将在该事务内运行,因为默认事务传播为
Propagation.REQUIRED,这意味着如果有事务已经打开的呼叫将在其中运行。如果您打算使用spring数据,我强烈建议您阅读有关Spring中的事务管理的信息。



