如何在Hibernate中保存多个实体?

时间:2012-08-20 07:57:13

标签: hibernate jpa

在我的Java Web应用程序中,我想一次保存每100个保存实例,最好的方法是什么?我有一些时间限制,我必须尊重,持久的操作应该很快。我有什么方法比其他方法更快?谢谢

2 个答案:

答案 0 :(得分:9)

基本上您正在寻找的是使用JPA批量插入数据库。这些主题已经提出,这些将对您有所帮助:

摘要

  • 使用Hibernate的批量插入。 Hiberate为batch inserting and updating实体提供方法。

  • 禁用自动ID生成。 如果您自动生成ID,Hibernate会为每个实体执行查询以生成主键。

意见

基本上我认为禁用自动ID生成是一个坏主意。您可以使用大多数Hibernate的批处理方法,但这不会为您节省很多性能。

完成此操作后,我建议您在应用程序的其他层中寻找优化。

答案 1 :(得分:1)

如果你正在使用与Spring交互的Hibernate,你可以使用HibernateTemplate#saveOrUpdateAll

 mHibernateTemplate.saveOrUpdateAll(entities);