第1章 Hibernate 3簡介 1
1.1 POJO 1
1.2 Hibernate和對象-關係映射的起源 3
1.2.1 EJB作為持久化解決方案 4
1.2.2 Hibernate作為持久化解決方案 5
1.2.3 瘦解決方案 5
1.3 Hibernate Hello World示例 6
1.4 映射 6
1.5 數據庫的生成 7
1.6 Hibernate 3與EJB 3.0的關係 8
1.7 小結 8
第2章 集成和配置Hibernate 9
2.1 集成和配置Hibernate所需的步驟 9
2.2 瞭解Java應用程序中的什麼地方適閤使用Hibernate 10
2.3 部署Hibernate 11
2.3.1 運行Hibernate 3所需的庫 11
2.3.2 注解和EJB 3 11
2.3.3 JMX和Hibernate 12
2.4 Hibernate配置 12
2.4.1 Hibernate屬性 13
2.4.2 XML配置 16
2.4.3 映射文檔 17
2.4.4 命名策略 18
2.4.5 使用容器管理的數據源 19
2.5 會話工廠 19
2.6 SQL方言 20
2.7 小結 21
第3章 構建簡單的應用程序 22
3.1 安裝工具 22
3.1.1 Hibernate和Hibernate Tools 22
3.1.2 HSQLDB 1.8.0 23
3.1.3 Ant 1.6.5 23
3.1.4 Ant任務 26
3.1.5 啓用日誌記錄 27
3.2 創建Hibernate配置文件 27
3.3 運行Message示例 29
3.4 對多個對象進行持久化 31
3.5 創建持久化類 32
3.6 創建對象映射 35
3.7 創建錶 38
3.8 會話 40
3.8.1 會話和相關的對象 40
3.8.2 使用會話 42
3.9 構建DAO 44
3.10 示例客戶機 48
3.11 小結 52
第4章 持久化生命周期 53
4.1 生命周期簡介 53
4.2 實體、類和名稱 54
4.3 標識符 55
4.4 實體和關聯 55
4.5 保存實體 58
4.6 對象相等性和同一性 59
4.7 加載實體 60
4.8 刷新實體 61
4.9 更新實體 61
4.10 刪除實體 62
4.11 級聯操作 63
4.12 延遲加載、代理和集閤包裝器 64
4.13 查詢對象 65
4.14 小結 65
第5章 映射概述 66
5.1 映射為什麼無法自動化 67
5.2 主鍵 68
5.3 延遲加載 70
5.4 關聯 70
5.4.1 一對一關聯 71
5.4.2 一對多和多對一關聯 73
5.4.3 多對多關聯 73
5.4.4 應用映射來建立關聯 74
5.5 映射的類型 74
5.6 在映射中可以錶示的其他信息 75
5.6.1 指定數據庫列類型和大小 75
5.6.2 將繼承關係映射到數據庫 75
5.6.3 主鍵 75
5.6.4 使用基於SQL公式的屬性 76
5.6.5 必需約束和唯一約束 76
5.6.6 操作的級聯 76
5.7 小結 76
第6章 用注解進行映射 77
6.1 Java 5特性 77
6.2 用注解創建Hibernate映射 77
6.2.1 注解的缺點 78
6.2.2 注解的優點 78
6.2.3 選用哪種方法 79
6.2.4 在應用程序中使用注解 79
6.2.5 EJB 3持久化注解 80
6.2.6 用@Entity標齣實體bean 83
6.2.7 用@Id和@GeneratedValue標齣主鍵 84
6.2.8 用@SequenceGenerator生成主鍵值 85
6.2.9 用@TableGenerator生成主鍵值 86
6.2.10 用@Id、@IdClass和@EmbeddedId組閤主鍵 87
6.2.11 用@Table和@SecondaryTable進行數據庫錶映射 91
6.2.12 用@Basic對基本類型進行持久化 92
6.2.13 用@Transient避免持久化 93
6.2.14 用@Column映射屬性和字段 93
6.2.15 對實體關係進行建模 94
6.2.16 繼承 100
6.2.17 其他EJB 3持久化注解 102
6.3 配置帶注解的類 104
6.4 Hibernate 3特有的持久化注解 105
6.4.1 @Entity 107
6.4.2 用@Sort對集閤進行排序 107
6.4.3 用@IndexColumn指定集閤次序 108
6.4.4 通過@Table和@Index應用索引 108
6.4.5 用@Where限製集閤 108
6.4.6 用@GenericGenerator指定替換的鍵生成策略 109
6.5 結閤使用Ant和基於注解的映射 109
6.6 代碼清單 110
6.7 小結 115
第7章 用Hibernate XML文件創建映射 116
7.1 Hibernate類型 116
7.1.1 實體 116
7.1.2 組件 116
7.1.3 值 117
7.2 分析映射文件 118
7.2.1 hibernate-mapping元素 118
7.2.2 class元素 119
7.2.3 id元素 121
7.2.4 property元素 123
7.2.5 component元素 124
7.2.6 one-to-one元素 125
7.2.7 many-to-one元素 126
7.2.8 集閤元素 128
7.3 對簡單類進行映射 133
7.4 對組閤進行映射 135
7.5 對其他關聯進行映射 137
7.6 對集閤進行映射 140
7.7 對繼承關係進行映射 142
7.7.1 每個具體類一個錶 143
7.7.2 每個子類一個錶 143
7.7.3 每個類層次結構一個錶 144
7.8 其他映射 145
7.8.1 any標記 145
7.8.2 array標記 146
7.8.3 dynamic-component元素 146
7.9 小結 146
第8章 使用會話 147
8.1 會話 147
8.2 事務和鎖 149
8.2.1 事務 150
8.2.2 鎖 152
8.2.3 死鎖 153
8.3 緩存 157
8.4 綫程 158
8.5 小結 159
第9章 搜索和查詢 160
9.1 HQL 160
9.2 語法基礎 161
9.2.1 UPDATE 161
9.2.2 DELETE 161
9.2.3 INSERT 161
9.2.4 SELECT 162
9.3 第一個HQL示例 162
9.4 在日誌中記錄底層SQL 166
9.5 from子句和彆名 167
9.6 select子句和投影 168
9.7 用HQL進行限製 168
9.8 使用命名參數 169
9.9 對結果集進行分頁 170
9.10 獲取唯一的結果 170
9.11 用order by子句對結果排序 171
9.12 關聯 171
9.13 用HQL進行批量更新 173
9.14 HQL和SQL命名查詢 174
9.15 使用原生SQL 175
9.16 小結 176
第10章 使用條件的高級查詢 177
10.1 Criteria API 177
10.1.1 用條件進行限製 177
10.1.2 對結果集進行分頁 180
10.1.3 獲取唯一的結果 181
10.1.4 對查詢的結果排序 181
10.1.5 關聯 181
10.1.6 不重復的結果 182
10.1.7 投影和統計 182
10.1.8 QBE 184
10.2 小結 186
第11章 對搜索結果進行過濾 187
11.1 何時應該使用過濾器 187
11.2 定義過濾器 188
11.3 在應用程序中使用過濾器 188
11.4 基本的過濾示例 189
11.5 小結 193
附錄A 高級特性 194
A.1 EJB 3和EntityManager 194
A.2 管理版本化和樂觀鎖 197
A.3 XML關係持久化 198
A.3.1 在映射中添加節點信息 198
A.3.2 導齣XML實體 200
A.3.3 導入XML實體 202
A.3.4 在使用XML實體時的其他考慮因素 203
A.4 映射 203
A.5 Hibernate的限製 204
A.6 手工編寫的SQL 205
A.6.1 使用直接映射 205
A.6.2 使用視圖 206
A.6.3 在映射中插入SQL 208
A.7 調用存儲過程 210
A.8 事件 211
A.9 攔截器 214
A.10 覆蓋默認的構造器 221
A.11 小結 221
附錄B Hibernate Tools 222
B.1 Eclipse插件 222
B.1.1 安裝插件 223
B.1.2 項目配置樣闆 224
B.1.3 使用Hibernate Console 226
B.2 Ant任務 237
B.2.1 Ant任務的工作方式 237
B.2.2 反嚮工程 242
B.2.3 模闆 245
B.2.4 配置類路徑 246
B.3 小結 247
附錄C Hibernate和Spring 248
C.1 Spring庫 248
C.2 從Spring應用程序配置Hibernate 249
C.3 在Spring bean中使用Hibernate 252
C.4 聲明式事務管理 254
C.5 管理會話 256
C.6 配置文件示例 257
C.7 小結 259
附錄D 從Hibernate 2升級 260
D.1 包和DTD的變化 260
D.2 新特性和對老特性的支持 261
D.2.1 改變和廢棄的特性 261
D.2.2 增加的特性 263
D.3 工具和庫的變化 263
D.4 Java 5帶來的變化 263
D.5 小結 263
索引 265
· · · · · · (
收起)