2010-06-08 114 views
4

我在采访中被问到这个问题,所以我用以下回答:何时使用Hibernate?

更好的表现: - 高效的查询。 - 一级和二级缓存。 - 好的高速缓存提供了更好的可扩展性。 - 良好的数据库可移植性: - 更改数据库与更改方言配置一样简单。 - 提高开发人员生产力: - 仅以对象术语思考,而不是查询语言术语。

但我也觉得系统属于下列类别之一,Hibernate可能不适合所有这些情况,我对你对此的想法感兴趣,你是否同意我的看法?请在下列情况下告诉我何时使用HB以及为什么。

  • 只写系统:
  • 只读系统:
  • 写晴系统:
  • 阅读晴系统:

问候 拉莫

回答

1

Hibernate是适用于大多数的应用程序你有一个面向对象的模型。所以你可以问:什么时候面向对象的模型是合适的?

我会说,最大的优势是开发人员的生产力。查询性能本身通常比手工编码查询更差,因为它无法针对每个特定情况进行优化。休眠通过使用缓存来很好地补偿这一点。

只写(大部分)系统不能从缓存中获得太多优势,甚至会降低性能(应该避免使用缓存)。这些类型的系统通常不需要面向对象的模型,他们只是将数据推送到数据库中。

+0

是的我同意你关于查询效率不高的问题,所以我纠正了我对此的理解。 关于我的问题的第二部分,我想你只是说只写/主要是系统不适合单纯使用HB,因为它们不需要OO模型。我不得不说,我没有这样想,所以谢谢你的洞察力。 – Ramo 2010-06-08 07:48:20