2010-08-24 23 views
3

Domain Logic and SQL的背景下,Martin Fowler的會談與數據庫交互的約3風格:新手問題...在Martin Fowler的文章

  1. 事務腳本
  2. 域模型,並
  3. 邏輯在SQL

我想知道的是:

  1. 在使用Hibernate進行持久性時,通常使用和/或鼓勵以上三種風格中的哪一種?
  2. 使用Hibernate有沒有第四種風格?

(從到位SQL的Hibernate之上,替代HQL的情況下)。

非常感謝......

回答

1

通常情況下,你使用O/R映射像Hibernate使用域模型。


編輯:

是的,這將是#2,域模型。
實際上,我對Hibernate瞭解不多,我只使用NHibernate(Hibernate的.net端口)。但是因爲它是Hibernate的一個端口,所以基礎應該大致相同。 Hibernate和NHibernate可能會分享內部的巫術來提高性能,但我對他們的內部知識不夠詳細。

你還應該考慮到Fowler的文章最後在2003年2月(7.5年前)更新過,而且像(N)Hibernate這樣的成熟的O/R映射器可能從那時起就增加了它們的性能。

+0

會不會是風格#2:域模型?在這種情況下的表現會怎樣? Hibernate是否會自動在內部做一些「魔術」......以解決任何性能問題?對於我對Hibernate的無知感到抱歉:我只是問了這個非常高級的問題,所以在我投入數週時間來學習Hibernate之前,我並沒有發現它的性能不夠,或者你必須犧牲OO「純度「/」優雅「在你的領域模型。 – Harry 2010-08-24 11:04:12

+0

我編輯了我的答案,參見上文! – 2010-08-24 11:43:03