在我的Java Web应用程序中,我想一次保存每100个保存实例,最好的方法是什么?我有一些时间限制,我必须尊重,持久的操作应该很快。我有什么方法比其他方法更快?谢谢
答案 0 :(得分:9)
基本上您正在寻找的是使用JPA批量插入数据库。这些主题已经提出,这些将对您有所帮助:
使用Hibernate的批量插入。 Hiberate为batch inserting and updating实体提供方法。
禁用自动ID生成。 如果您自动生成ID,Hibernate会为每个实体执行查询以生成主键。
基本上我认为禁用自动ID生成是一个坏主意。您可以使用大多数Hibernate的批处理方法,但这不会为您节省很多性能。
完成此操作后,我建议您在应用程序的其他层中寻找优化。
答案 1 :(得分:1)
如果你正在使用与Spring交互的Hibernate,你可以使用HibernateTemplate#saveOrUpdateAll
mHibernateTemplate.saveOrUpdateAll(entities);