2011-02-14 60 views
0

在Hibernate中,什么是最好的办法:的FindAll休眠或标准和实例

  1. 使用的findAll为DataTable对象,返回所有的字段,而只提取相关数据,或使用标准和实例来聚焦结果和列?
  2. 如果答案是基于表大小 - 建议使用每种方法的列数和行数量?
+0

这取决于我们想要实现的目标。 – 2011-02-14 17:41:31

回答

1

我想只有你可以根据你的应用决定采取哪种方法。

  1. 如果你需要从数据表这将是一个容易得多检索所有对象并获取相关数据的每个对象数据。如果这会导致可以承受的性能开销,那么hibernate会提供一系列优化来提取所需的数据。请记住,读取列比读取行快得多。一种这样的优化可能是提取一个id列表,这个id列表可以被应用程序遍历,这个应用程序逐个获取条目,产生一个几乎为零的内存开销,并与交易次数进行一些折衷。

  2. 通常没有建议的限制,因为它取决于您的应用程序和表格大小。如果我的查询跨越了10k个对象,我可能会发现另一种方式,主要是由于内存问题。

+0

“一个这样的优化可能是提取可以由逐个提取条目的应用程序迭代的id列表”,您是否想要创建方法findIds然后逐个迭代它们? – Dejell 2011-02-14 17:55:33