Hibernate是否适合批量处理?内存使用情况怎么样?

WW.*_*WW. 6 memory performance hibernate memory-management jdbc

我有一个每日批处理过程,包括选择大量记录和格式化文件以发​​送到外部系统.我还需要将这些记录标记为已发送,以便明天不再传输.

在我天真的JDBC方式中,我会准备并执行一个语句,然后开始遍历记录集.因为我只是通过记录集前进,所以我的应用程序服务器不需要一次将整个结果集保存在内存中.可以从数据库服务器馈送记录组.

现在,让我说我正在使用hibernate.我不会立刻用一堆表示内存中整个结果集的对象结束吗?

Aar*_*lla 5

Hibernate也会迭代结果集,因此只有一行保留在内存中.这是默认值.如果它贪婪地加载,你必须这样说.

使用Hibernate的原因:

  • "某人"是"创意"的列名(PRXFC0315.XXFZZCC12)
  • 数据库设计仍然不稳定和/或您想要一个将列名映射到Java的地方.
  • 无论如何你正在使用Hibernate
  • 您有复杂的查询,而且您不熟练使用SQL

使用Hibernate的原因:

  • 您的应用程序的其余部分是纯JDBC
  • 你不需要任何Hibernate的强大功能
  • 您有复杂的查询,并且您可以熟练使用SQL
  • 您需要数据库的特定功能才能使SQL执行