5

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

4

2 回答 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 回答