2010-06-08 56 views
4

我在採訪中被問到這個問題,所以我用以下回答:何時使用Hibernate?

更好的表現: - 高效的查詢。 - 一級和二級緩存。 - 好的高速緩存提供了更好的可擴展性。 - 良好的數據庫可移植性: - 更改數據庫與更改方言配置一樣簡單。 - 提高開發人員生產力: - 僅以對象術語思考,而不是查詢語言術語。

但我也覺得系統屬於下列類別之一,Hibernate可能不適合所有這些情況,我對你對此的想法感興趣,你是否同意我的看法?請在下列情況下告訴我何時使用HB以及爲什麼。

  • 只寫系統:
  • 只讀系統:
  • 寫晴系統:
  • 閱讀晴系統:

問候 拉莫

回答

1

Hibernate是適用於大多數的應用程序你有一個面向對象的模型。所以你可以問:什麼時候面向對象的模型是合適的?

我會說,最大的優勢是開發人員的生產力。查詢性能本身通常比手工編碼查詢更差,因爲它無法針對每個特定情況進行優化。休眠通過使用緩存來很好地補償這一點。

只寫(大部分)系統不能從緩存中獲得太多優勢,甚至會降低性能(應該避免使用緩存)。這些類型的系統通常不需要面向對象的模型,他們只是將數據推送到數據庫中。

+0

是的我同意你關於查詢效率不高的問題,所以我糾正了我對此的理解。 關於我的問題的第二部分,我想你只是說只寫/主要是系統不適合單純使用HB,因爲它們不需要OO模型。我不得不說,我沒有這樣想,所以謝謝你的洞察力。 – Ramo 2010-06-08 07:48:20