【问题标题】:findall hibernate or Criteria and Examplefindall hibernate or Criteria and Example
【发布时间】:2023-04-04 02:33:01
【问题描述】:

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

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

【问题讨论】:

  • 这取决于我们想要达到的目标。

标签: java hibernate


【解决方案1】:

我认为只有您可以根据您的应用程序决定采用哪种方法。

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

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

【讨论】:

  • " 一种这样的优化可能是提取一个 id 列表,该列表可以由应用程序逐个获取条目进行迭代" 你的意思是创建方法 findIds 然后逐个迭代它们一个?
  • 是的。如果处理时间/对象高于实际的数据库读取时间,这非常有用,例如如果您使用数据来获取一些网络资源。在其他示例中,分组处理对象可能更有益。
猜你喜欢
  • 2011-12-28
  • 2023-03-19
  • 2021-12-27
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多