findall hibernate或Criteria and Example

时间:2011-02-14 17:37:36

标签: java hibernate

在Hibernate中,最好的方法是什么:

  1. 将findAll用于数据表对象,返回所有字段并仅提取相关数据,或使用Criteria和Example来聚焦结果和列?
  2. 如果答案是基于表格大小 - 建议使用每个方法的列数量和行数?

1 个答案:

答案 0 :(得分:1)

我认为只有您可以根据您的申请决定采取哪种方法。

  1. 如果您需要数据表中每个对象的数据,那么检索所有对象并提取相关数据将会更加容易。如果这会产生令人难以置信的性能开销,那么hibernate会提供一系列优化来提取您需要的数据。请记住,读取列比读取行更快。一种这样的优化可以是提取id的列表,该列表可以由应用程序迭代,该应用程序逐个获取条目,从而导致几乎零的存储器开销,并且对事务的数量进行一些权衡。

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