Hibernate深入淺出 夏昕 曹曉鋼 唐勇 電子工業出版社
一本非常不錯的Hibernate介紹,比較全面,作者也很認真。雖然是國內在Hibernate領域比較領先的行家,但並非大家,所以先推免費版的做法非常聰明,加之其後認真的工作,相信讓大家記住了作者的名字,有不同於普通技術寫手的認同感。
本書從JAVA數據訪問層開始,讓讀者對數據訪問層所要解決的問題有了一個認識,對ORM有了概念。然後就是全面的Hibernate使用介紹,文字風格與深度非常適合普通開發人員與應用設計師。附錄和實戰的補充也是恰到好處。
提些不足的地方:
1. 部分章節組織稍有凌亂,例如第四章Hibernate基礎和第五章Hibernate高級特性裏,對於數據緩存/事務管理/分頁查詢/屬性加載之類的在兩章都有出現.全文的章節劃分不太合理。
2. 與PDF一樣,示例是從Middlegen和Hibernate Extension開始的,可這兩個東西相當不好用,對於許多無法按部就班的讀者來說,後面的範例就很難進行。
3. 性能方面的考慮,缺少hibernate內部實現而屏蔽掉的一些性能差別,例如HQL和Criteria的實現與轉換,分頁的實現原理等,使一些高級用戶對性能的把握有些不準確。
4. 對錶關係的描述不夠清晰。
5. 可以增加一些Hibernate插件的使用介紹。
讀書筆記(注意點):
l SessionFactory除維護當前數據庫的配置映射關係外,還維護二級數據緩存和
l
l Statement Pool,且線程安全,因此一個數據庫共享一個SessionFactory實例.
l 注意不要將POJO設爲FINAL,導致hibernate代理機制無法運行,而代理機制是
l
l 提高性能的重要方法之一.
l 業務邏輯與數據邏輯分開,所以ID不要與業務邏輯相關.
l session非線程安全,所以需要ThreadLocal來實現,代碼如下
l id生成方式
l 動態模型方式,class的屬性name被entity-name代替.
l 實體映射中非常有用的冗餘模式,通過discriminator實現.
l 數據的四種加載方式. 屬性延遲加載功能,和2.0中屬性延遲加載的實現.
l 緩存方式.
2005-9-20