不能因為用鼻子吹氣以推動枝芽是可能的,就認為這是收集柴火的最好方式
-Anthony Berglas
今日,許多軟體開發者都會操作企業資訊系統(EIS)。這種應用程式創建,管理,且儲存結構化的資訊,且讓許多不同時空的許多使用者共享資訊。
EIS資訊的儲存牽涉到SQL資料庫管理系統的大量使用。在我們的職業生涯中,每個我們碰到的公司至少會使用一個SQL資料庫;大部份完全依?關聯式資料庫技術為商業的核心。
在過去的五年,大量使用Java程式語言為程式開發帶來了物件導向的優勢。開發者現在都相信物件導向帶來的好處。然而,巨大的商業依然束縛於長時間投資且昂貴的關聯式資料庫系統。不僅是被獨特的廠商所圍住,且現存的既有資料必須能被新興的物件導向網頁應用程式所存取。
然而,在關聯式資料庫中表格的表達基本上就不同於物件導向Java應用程式中物件的網路。這種不同導致了物件/關聯式詞形的不協調。在以往這種不協調的重要性與損失通常被低估,且解決這種問題的工具並不充足。同時Java開發者將不協調歸因於關聯技術;資料專家則責怪關聯技術。
物件/關聯式對應(ORM)是這種不協調問題自動解決方案的名字。對於那些厭倦於開發資料存取程式碼的開發者,好消息是ORM出現了。使用ORM的應用程式可以被期待花費較小,較具效能,且較不具平台獨佔性,且更容易處理內部物件或下層SQL綱要的改變。令人震撼的是,這些好處現在對Java開發者來說是完全免費的。
Gavin King當他發現當時有名的永續方案─CMP Entity Bean─並不能延展到具有複雜資料模型的非顯而易見應用程式時,於2001年底開始開發Hibernate。Hibernate誕生於一個獨立,非商業的開放源始碼專案。
Hibernate開發小組(包括作者們)已經用很辛苦的方式學習ORM,那就是聆聽使用者需求且實作他們所需要的以達成他們的需求。結果是Hibernate變成是一個務實的解決方案,強調開發者的產值與技術上的領先。Hibernate已經被數以萬計的使用者使用在數以千計的正式應用程式之中。
當對他們時間的需求變得不可抗拒,Hibernate小組決定這個計劃的成功(與Gavin的精神持續正常)需要專業開發者全心全力投入Hibernate。Hibernate在2003年底加入了jboss.org,且變成了商業的外觀;你可以從JBoss公司買到商業的支援與訓練。但商業的訓練並不是學習Hibernate的唯一方式。
顯而易見的,許多甚至是所有的Java專案都會受惠於使用像Hibernate的ORM解決方案,雖然這在數年前並不常見!當ORM科技開始增加變成主流,像Hibernate免費的文件般的產品說明變得不足。我們了解到Hibernate社群與新的Hibernate使用者需要完整的書籍,不只是學習使用Hibernate來開發應用程式,而也要了解並且體會物件/關聯不協調與Hibernate設計的背後動機。
你所拿的這本書內含的巨大努力佔據我們超過一年的閒暇時間。這也是許多強烈爭執與學習經驗的來源。我們希望這本書是Hibernate優秀的手冊(或者是我們數個評論者所提出,"Hibernate聖經")且也是第一本廣泛說明物件/關聯不協調與一般性探討ORM的文件。我們希望你認為這本書是有用的,且熟受使用Hibernate。