当我需要一个大表中的一行时,使用Hibernate或JDBC

时间:2012-07-12 06:39:45

标签: database hibernate jdbc

1>包含数百万行和100列的表我想运行一个查询,该查询将从表中返回一行(我需要3-4列)。对于这个用例,哪个JDBC或Hibernate是更好的选择。

2>如果我们在这种情况下使用hibernate,也存在内存不足的风险。我对hibernate中的缓存问题一无所知,并且听到人们获得了OOM。

3>哪个hibernate / JDBC会给出更快的结果。因为时间对我来说很重要。

2 个答案:

答案 0 :(得分:1)

  1. 您可以使用Hibernate轻松完成此操作,只需使用“视图对象”即可。性能与本机JDBC相同。
  2. 不,Hibernate只会处理Resultset中返回的内容。如果只包含一行,则不会有任何问题。
  3. Hibernate在两种情况下会很慢:它会生成次优查询(您可以使用.hbm配置文件和/或注释进行调整)或减慢处理结果(当返回的Resultset很大时会发生这种情况)。 / LI>

    顺便说一句,请参阅我的博客文章,了解如何使用Hibernate for OLAP style queries

答案 1 :(得分:0)

如果这是一个已经在使用hibernate的项目,那么就没有理由不使用hibernate。见Istvan Devai的回答。

如果这是一个新项目,这就是你用db做的全部我不认为使用hibernate(或任何其他JPA实现)有很多好处,你最好使用普通的JDBC。