目錄
前言
序言
誌謝
關於這本書
關於 Hibernate3 與EJB3
作者在線上
關於書名和封面
- 了解物件/關聯式永續性
- 何謂永續?
- 關聯式資料庫
- 了解 SQL
- 在 Java 中使用 SQL
- 在物件導向程式中的永續化
- 範例不協調
- 顆粒化問題
- 子型別的問題
- 身份的問題
- 與聯合相關的問題
- 有關物件圖走訪的問題
- 不協調的代價
- 永續層與其它
- 分層架構
- 使用 SQL/JDBC 手動打造永續層
- 使用序列化
- 考慮 EJB entity beans
- >物件導向資料庫系統
- 其他的選項
- 物件/關聯式對應
- 什麼是 ORM?
- 一般 ORM 的問題
- 為何使用 ORM?
- 結論
- 介紹與整合 Hibernate
- "Hello World" 與 Hibernate
- 了解架構
- 核心界面
- Callback 界面
- 型態
- 延伸界面
- 基本的組態
- 創建一個 SessionFactory
- 在非被管理下的組態
- 被管理環境下的組態
- 進階組態設定
- 使用 XML 為底的組態
- 與 JNDI 結合的 SessionFactory
- 日誌
- Java 管理延伸 (JMX)
- 結論
- 對應永續類別
- CaveatEmptor 應用程式
- 分析商業領域
- CaveatEmptor 領域模型
- 實作領域模型
- 對付洩漏的考量
- 透明和自動的永續
- 撰寫 POJO
- 實作 POJO 的聯合
- 將邏輯加入存取函數
- 定義對應的後設資料
- XML 中的後設資料
- 基本的屬性和類別的對應
- 屬性導向程式設計
- 在執行時期操作後設資料
- 了解物件的身份性
- 身份性與相同性
- 資料庫等身性與 Hibernate
- 選擇主鍵值
- 微粒物件模型
- 個體與值的型態
- 使用元件
- 對應類別的繼承
- 一個表格對應到一個具體的類別
- 一個表格對應到一個類別階層
- 一個表格對應到一個子類別
- 選擇一個策略
- 介紹聯合
- 被管理的關聯?
- 多重性
- 可能是最簡單的聯合
- 讓聯合能雙向
- 一個父/子關係
- 總結
- 操作永續物件
- 永續生命周期
- 暫時物件
- 永續物件
- 分離的物件
- 物件辨識元的範圍
- 超出辨識元的範圍
- 實作 equals() 與 hashCode()
- 永續管理員
- 使物件永續
- 更新分離實例的永續狀態
- 取得一個永續物件
- 更新一個永續物件
- 使一個永續物件暫時化
- 使分離的物件暫時化
- 在 Hibernate 中使用過渡永續
- 依照可觸及性來永續化
- 串聯永續與 Hibernate
- 管理拍賣種類
- 分辨暫時和分離的實例
- 取出物件
- 由辨識元取得物件
- 介紹 HQL
- 依照標準來查詢
- 用範例來查詢
- 取出的策略
- 在對應中選擇一個取出策略
- 調校物件的取出
- 總結
- 交易,並進與快取
- 了解資料庫的交易
- JDBC 和 JTA 交易
- Hibernate Transaction API
- 沖洗 Session
- 了解隔離的程度
- 選擇一個隔離的等級
- 設定隔離的等級
- 使用悲觀鎖定
- 操作應用程式交易
- 使用被管理的版本
- Session 的粒狀
- 其它實作樂觀鎖定的方法
- 快取理論與實務
- 快取策略與範圍
- Hibernate 快取架構
- 快取的實務
- 結論
- 進階對應概念
- 了解 Hibernate 的型態系統
- 內建對應型態
- 使用對應型態
- 對應值型態的 collection
- Sets, bags, lists 和 maps
- 對應個體聯合
- 一對一聯合
- 多對多聯合
- 對應多型聯合
- 多型多對一聯合
- 多型 collection
- 多型聯合與每個具體類別一個表格
- 結論
- 有效率地取得物件
- 有效率地取得物件
- 執行查詢
- 查詢介面
- 查詢參數
- 使用命名查詢
- 物件的基本查詢
- 最簡單的查詢
- 使用別名
- 多型查詢
- 限定
- 比較運算子
- 字串比對
- 邏輯運算子
- 查詢結果的排序
- 物件關係的結合
- Hibernate 結合選項
- 取得關連
- 在結合中使用別名
- 使用隱含結合
- Theta-style 結合
- 比對識別子
- 撰寫查詢報表
- 投影
- 使用聚集
- 群組
- 利用 having 限制群組
- 強化報表查詢的效能
- 進階查詢技術
- 動態查詢
- Collection 過濾器
- 子查詢
- 原生 SQL 查詢
- 最佳化物件取得
- 解決 n+1 選取問題
- 使用 iterate() 查詢2
- 快取查詢
- 結論
- 撰寫 Hibernate 應用程式
- 設計層狀應用程式
- 在 servlet 引擎中使用 Hibernate
- 在 EJB 的容器中使用 Hibernate
- 實作應用程式的交易
- 許可一個新的拍賣
- 從困難的方法開始
- 使用分離的永續物件
- 使用一個長 session
- 選擇一個適當的應用程式交易
- 處理特別的資料
- 既有綱要與復合鍵值
- 監聽日誌
- 摘要
- 使用工具集
- 開發程序
- 由上而下
- 由下而上
- 從中而分(後設資料導向)
- 於中交會
- 回合循環
- 自動產生綱要
- 準備對應的後設資料
- 建立綱要
- 更新綱要
- 產生POJO程式碼
- 增加後設屬性
- 產生搜尋者
- 組態設定 hbm2java
- 執行> hbm2java
- 既存的資料庫綱要以及 Middlegen
- 開始使用 Middlegen
- 限制表格和關聯
- 客製化後設資料產生
- 產生 hbm2java 和 XDoclet 的後設資料
- XDoclet
- 設定屬性資料型態
- 對應實體關聯
- 執行 XDoclet 368
- 結論
appendix a: SQL 基礎
appendix b: ORM 實作策略
appendix c: 回到真實的世界
參考文獻