第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.1 最初的schema 89
第4章 从一个现成的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.15 generator 129
5.2.14 element 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.25 key-many-to-one 136
5.2.24 key 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.35 one-to-many 145
5.2.34 nested-composite-element 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 retum 152
5.2.43 set 152
5.2.44 sql-query 153
5.2.45 subclass 154
5.2.47 timestamp 155
5.2.46 synchronize 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.1 子类 189
7.3 Java类关系 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.1 选定属性列表 199
8.3.2 统计函数 199
8.3 SELECT子句 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.2 在应用程序中更新schema 245
11.1 更新已有的schema 245
第11章 管理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.4 与其他技术集成 260
12.3 使用Hibernate作为EJB的BMP解决办法 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