本書共13章,提供一個完整的實例來分別說明如何根據對象/關系型映射文件、Java代碼和現有的schema創建應用程序。書中介紹如何用HQL編寫Hibernate查詢,如何結合使用Hibernate和基于Java的Criteria與Example。同時還詳細介紹Hibernate的映射文件格式。本書不是普通的開源文檔的堆砌,而是以合理的結構、適當的案例透徹講解Hibernate。 本書適合熟悉Java開發(包括面向對象的設計)、熟悉SQL和其他關系數據庫、熟悉Ant的開發人員閱讀和參考。目 錄
第1章 概述 1
1.1 為什么要進行對象/關系映射 1
1.2 什么是Hibernate 2
1.3 比較JDBC和Hibernate 3
1.4 Hibernate的映射機制 6
1.5 其他的Java/數據庫集成解決方案 9
1.5.1 Enterprise JavaBeans (EJB) 2.X 9
1.5.2 Enterprise JavaBeans (EJB) 3.0 9
1.5.3 Java 數據對象 9
1.5.4 其他的商業化對象/關系 工具 10
1.6 如何獲得和安裝Hibernate 11
1.6.1 Hibernate發布 11
1.6.2 Hibernate擴展發行 14
1.6.3 配置 15
1.7 支持數據庫 16
第2章 導論 21
2.1 應用程序的構架 21
2.2 映射文件 22
2.3 生成Java源文件 25
2.4 應用程序的配置 31
2.5 Web應用程序 35
2.6 JSP用戶界面 36
第3章 從Java開始 61
3.1 Java對象模型 61
3.1.1 Java類 62
3.1.2 使用XDoclet 69
3.2 生成映射文件 71
3.3 生成的schema 75
3.4 Artifact和Owner的應用 77
第4章 從一個現成的schema開始 89
4.1 最初的schema 89
4.2 使用Middlegen 92
4.3 生成的映射文件 98
4.4 生成的Java源文件 102
4.5 操作數據庫 103
第5章 映射文件 116
5.1 基本結構 116
5.2 映射文件參考 117
5.2.1 any 117
5.2.2 array 118
5.2.3 bag 119
5.2.4 cache 120
5.2.5 class 121
5.2.6 collection-id 123
5.2.7 column 124
5.2.8 component 125
5.2.9 composite-element 125
5.2.10 composite-id 126
5.2.11 composite-index 127
5.2.12 discriminator 127
5.2.13 dynamic-component 128
5.2.14 element 129
5.2.15 generator 129
5.2.16 hibernate-mapping 130
5.2.17 id 131
5.2.18 idbag 132
5.2.19 import 133
5.2.20 index 134
5.2.21 index-many-to-any 134
5.2.22 index-many-to-many 135
5.2.23 joined-subclass 135
5.2.24 key 136
5.2.25 key-many-to-one 136
5.2.26 key-property 137
5.2.27 list 138
5.2.28 many-to-any 139
5.2.29 many-to-many 139
5.2.30 many-to-one 140
5.2.31 map 141
5.2.32 meta 143
5.2.33 meta-value 144
5.2.34 nested-composite-element 145
5.2.35 one-to-many 145
5.2.36 one-to-one 146
5.2.37 param 147
5.2.38 parent 147
5.2.39 primitive-array 147
5.2.40 property 148
5.2.41 query 151
5.2.42 return 152
5.2.43 set 152
5.2.44 sql-query 153
5.2.45 subclass 154
5.2.46 synchronize 155
5.2.47 timestamp 155
5.2.48 version 156
第6章 持久化對象 157
6.1 Session對象 157
6.2 對象和標識 168
6.2.1 什么是標識 168
6.2.2 Session中的標識 170
6.2.3 生成標識(主鍵) 171
6.2.4 內置Hibernate生成器 171
6.2.5 復合標識 172
6.2.6 未保存值 174
6.3 生命周期方法 174
第7章 關系 185
7.1 數據庫關系 185
7.1.1 多對一 185
7.1.2 一對多 186
7.1.3 多對多 186
7.1.4 一對一 187
7.2 Java 集合關系 187
7.3 Java類關系 189
7.3.1 子類 189
7.3.2 聯接的子類 190
7.3.3 組件 191
7.4 任意關系 193
7.5 雙向關系 194
第8章 查詢 195
8.1 HQL 195
8.2 HQL參考 197
8.3 SELECT子句 199
8.3.1 選定屬性列表 199
8.3.2 統計函數 199
8.3.3 集合屬性 200
8.4 FROM子句 200
8.5 WHERE子句 205
8.5.1 邏輯運算 206
8.5.2 布爾運算 206
8.5.3 有效的表達式 207
8.5.4 參數綁定 207
8.6 GROUP BY命令 208
8.7 HAVING子句 208
8.8 ORDER BY命令 209
8.9 條件查詢 209
8.9.1 方法鏈 211
8.9.2 輕松重寫lazy設置 212
8.10 Native SQL查詢 212
第9章 事務 214
9.1 事務簡介 214
9.2 樂觀鎖和悲觀鎖 216
9.2.1 悲觀鎖 216
9.2.2 樂觀鎖 216
第10章 性能 219
10.1 找到并解決問題 219
10.2 查詢語句 224
10.2.1 延遲加載對象 225
10.2.2 集合 225
10.2.3 插入語句 225
10.3 連接池 226
10.4 緩存技術 229
10.4.1 理解緩存技術 229
10.4.2 配置緩存 231
10.4.3 標準緩存 232
10.4.4 使用自定義緩存 233
第11章 管理schema 245
11.1 更新已有的schema 245
11.2 在應用程序中更新schema 245
11.2.1 命令行方式 schema更新 247
11.2.2 通過Ant進行 schema更新 247
11.3 生成更新和刪除腳本 248
11.3.1 以命令行方式 生成腳本 248
11.3.2 通過Ant生成腳本 248
11.3.3 生成多個腳本 249
第12章 最佳實踐、風格指南、 提示和技巧 254
12.1 通過控制轉移縮減代碼 254
12.2 用ThreadLocal降低 會話創建的影響 258
12.3 使用Hibernate作為 EJB的BMP解決辦法 260
12.4 與其他技術集成 260
12.5 使用Hibernate的應用程序 261
12.6 如何著手 262
12.6.1 在哪里著手 262
12.6.2 從多對一和 一對多開始 263
12.6.3 理解數據庫讀取 263
第13章 遠景展望 264
13.1 Hibernate 3.0 264
13.2 EJB 3.0 265
13.3 現狀分析 266