在我的 Java Web 应用程序中,我想一次保存每 100 个保存实体实例,最好的方法是什么?我必须尊重一些时间限制,持久化操作应该很快。我有比其他方法更快的方法吗?谢谢
问问题
29943 次
2 回答
11
基本上你正在寻找的是使用 JPA 批量插入数据库。这些主题已经提出,这些将帮助您:
概括
使用 Hibernate 的批量插入。Hiberate 提供了批量插入和更新实体的方法。
禁用自动 ID 生成。 如果您自动生成 id,Hibernate 会为每个实体执行查询以生成主键。
观点
基本上我认为禁用自动 ID 生成是一个坏主意。您可以采用 Hibernate 的大部分批处理方法,但这不会为您节省太多性能。
完成此操作后,我建议您在应用程序的其他层中寻找优化。
于 2012-08-20T08:18:18.503 回答
1
如果您使用与 Spring 集成的 Hibernate,则可以使用HibernateTemplate#saveOrUpdateAll
mHibernateTemplate.saveOrUpdateAll(entities);
于 2015-08-11T11:14:28.210 回答