标题：Pro JPA2中文版：精通Java持久化API
基本信息
  Pro JPA2中文版：精通Java持久化API作者：基恩(Mike Keith)(作者), 席卡里尔(Schincariol.M.)(作者), 巢文涵(译者)
出版社: 清华大学出版社; 第1版 (2011年10月1日) 
外文书名: Pro JPA 2: Mastering the Java(TM) Persistence API 
平装: 460页 
正文语种: 简体中文 
开本: 16 
ISBN: 9787302258025 
条形码: 9787302258025 
商品尺寸: 25.6 x 18.4 x 2.4 cm 
商品重量: 762 g
内容简介
《Pro JPA2中文版:精通Java持久化API》上一版的目标之一是尽可能地简单明了，但是不短缺。我们尽力调整了它的大小，从而只描述我们感觉值得讲述的内容，但是依然确保适合在您的行李中携带《Pro JPA2中文版:精通Java持久化API》，以便于您在公共汽车或火车上阅读。然而，为了能够保持我们在第1版中所有的材料，同时添加两个章节和更多的功能，这看起来确实像是苛求。注解引用成为了这个要求的受害者。
编辑推荐
《Pro JPA2中文版:精通Java持久化API》：明确指导使用新的JPA 2创建健壮的，数据驱动的应用程序。
媒体推荐
令人难以置信的是，自从初始的Java持久化API 1．0版本发布以来，已经过去了三年。此间，我们目睹了它由成熟的API转变成主流的持久化标准。与此同时，许多读者使用本书的上一个版本作为掌握JPA的起点，很高兴我们在此过程中对您有所帮助!
JPA 2．0包括了一系列新特性，例如，其他的对象关系映射、更灵活的对象建模、类型化查询以及崭新的条件API等。由于有很多内容需要讨论，因此我们很兴奋能够更新其内容，解释所有新特性，而且还包括了一些提示和技巧来帮助您在实践中使用API。
如果您已经具备使用JPA 1．0的经验，那么应该能够从在JPA2．0中添加一个新特性时所指出的版本提示中获益。这些提示旨在帮助用户编写一个JPA 1.0实现，但还不能使用2.0特性。
对于JPA新手来说，大可不必担心会被遗忘。我们依然坚持最初的意图：把没有任何JPA基础的人训练成JPA高级开发人员。在《Pro JPA 2中文版：精通Java持久化API》的前两章中，您应该能够快速掌握入门所需的知识(资深的JPA编程人员可以从第3章开始)。最后，我们要表示感谢，因为是您使得本书的上一个版本如此成功。我们非常高兴它已经成为JPA开发人员的主要参考资源，希望您能够发现《Pro JPA 2中文版：精通Java持久化API》具有同样的价值。
——Mike Keith(JPA2．0专家组成员)和Merrick Schincariol
作者简介
作者：(加拿大)基恩 (Mike Keith) (加拿大)席卡里尔 (Schincariol.M.) 译者：巢文涵
基恩，是JPA l.0的共同规范领导(co-specification lead)，也是JPA 2.0专家组的活跃成员。他是许多其他JCP(Java Community Process)专家组的成员，包括JSR 316、Java EE6平台规范，以及OSGi Alliance的企业专家组(Enterprise Expert Group，EEG)。他获得了卡尔顿(Carleton)大学的计算机科学硕士学位，并且在持久性和分布式系统的研究与实践方面拥有20多年的经验。他撰写了许多关于JPA的论文和文章，并在世界各地的众多会议中发表过演讲。他也是一名资深的Oracle架构师。
席卡里尔，是一名Oracle顾问工程师，擅长中间件技术。他获得了湖首(Lakehead)大学的计算机科学学士学位，拥有十年以上的企业软件开发经验。在转向编写Java和J2EE应用程序之前，他在前Java企业(pre-Java enterprise)和商业智能领域从事咨询工作。Merrick在大型系统和数据仓库设计方面拥有丰富的经验，这使他能够从一个成熟和实践的角度来看待企业软件，从而为他后来从事EJB容器实现的工作奠定了基础。他还是Oracle EJB 3.0实现的首席工程师。
目录
第1章 简介 1
1.1 对象-关系映射 1
1.2 java持久化支持 7
1.2.1 专用解决方案 7
1.2.2 jdbc 7
1.2.3 企业javabean 8
1.2.4 java数据对象 8
1.3 为什么需要另一种标准 9
1.4 java持久化api 10
1.4.1 规范的历史 10
1.4.2 概述 11
1.5 本章小结 13
第2章 入门 14
2.1 实体概述 14
2.1.1 持久性 14
2.1.2 标识 15
2.1.3 事务性 15
2.1.4 粒度 15
2.2 实体元数据 16
2.2.1 注解 16
2.2.2 xml 16
2.2.3 异常配置 16
2.3 创建实体 17
2.4 实体管理器 19
2.4.1 获取实体管理器 20
2.4.2 持久化实体 20
2.4.3 寻找实体 21
2.4.4 删除实体 22
2.4.5 更新实体 22
2.4.6 事务 23
2.4.7 查询 24
2.5 汇总 25
2.6 组装 27
2.6.1 持久化单元 27
2.6.2 持久化存档文件 28
2.7 本章小结 28
第3章 企业应用程序 30
3.1 应用程序组件模型 30
3.2 会话bean 31
3.2.1 无状态会话bean 32
3.2.2 有状态会话bean 35
3.2.3 单例会话bean 38
3.3 消息驱动bean 41
3.4 servlet 42
3.5 依赖性管理 43
3.5.1 依赖性查找 43
3.5.2 依赖性注入 45
3.5.3 声明依赖性 47
3.6 事务管理 49
3.6.1 事务概述 50
3.6.2 java中的企业事务 50
3.7 使用java ee组件 55
3.7.1 使用无状态会话bean 55
3.7.2 使用有状态会话bean 56
3.7.3 使用单例会话bean 57
3.7.4 使用消息驱动bean 57
3.7.5 添加实体管理器 58
3.8 汇总 59
3.8.1 定义组件 59
3.8.2 定义用户接口 61
3.8.3 组装 61
3.9 本章小结 62
第4章 对象-关系映射 64
4.1 持久化注解 64
4.2 访问实体状态 65
4.2.1 字段访问 65
4.2.2 属性访问 66
4.2.3 混合访问 66
4.3 映射到表 68
4.4 映射简单类型 69
4.4.1 列映射 70
4.4.2 延迟提取 71
4.4.3 大型对象 72
4.4.4 枚举类型 73
4.4.5 时间类型 74
4.4.6 瞬态 75
4.5 映射主键 76
4.5.1 重写主键列 76
4.5.2 主键类型 76
4.5.3 标识符生成 76
4.6 关系 81
4.6.1 关系概念 81
4.6.2 映射概述 84
4.6.3 单值关联 84
4.6.4 集合值关联 88
4.6.5 延迟关系 94
4.7 嵌入对象 94
4.8 本章小结 98
第5章 集合映射 99
5.1 关系和元素集合 99
5.2 使用不同的集合类型 102
5.2.1 set或者collection 102
5.2.2 list 103
5.2.3 map 106
5.2.4 重复 117
5.2.5 null值 118
5.3 最佳实践 119
5.4 本章小结 120
第6章 实体管理器 121
6.1 持久化上下文 121
6.2 实体管理器 122
6.2.1 容器托管的实体管理器 122
6.2.2 应用程序托管的实体管理器 126
6.3 事务管理 128
6.3.1 jta事务管理 129
6.3.2 资源本地的事务 137
6.3.3 事务回滚和实体状态 139
6.4 选择实体管理器 140
6.5 实体管理器操作 140
6.5.1 持久化实体 140
6.5.2 寻找实体 142
6.5.3 删除实体 142
6.5.4 级联操作 143
6.5.5 清除持久化上下文 146
6.6 与数据库同步 147
6.7 分离和合并 149
6.7.1 分离 149
6.7.2 合并分离的实体 151
6.7.3 与分离实体一起工作 154
6.8 本章小结 166
第7章 使用查询 167
7.1 java持久化查询语言 167
7.1.1 入门 168
7.1.2 筛选结果 169
7.1.3 投影结果 169
7.1.4 实体之间的联接 169
7.1.5 聚合查询 170
7.1.6 查询参数 170
7.2 定义查询 171
7.2.1 动态查询定义 171
7.2.2 命名查询定义 173
7.3 参数类型 175
7.4 执行查询 177
7.4.1 使用查询结果 178
7.4.2 查询分页 182
7.4.3 查询与未提交的更改 184
7.4.4 查询超时 186
7.5 批量更新和删除 187
7.5.1 使用批量更新和删除 187
7.5.2 批量删除和关系 189
7.6 查询提示 190
7.7 查询的最佳实践 191
7.7.1 命名查询 191
7.7.2 报告查询 192
7.7.3 供应商提示 192
7.7.4 无状态会话bean 192
7.7.5 批量更新和删除 193
7.7.6 提供程序的区别 193
7.8 本章小结 193
第8章 查询语言 195
8.1 简介 195
8.1.1 术语 195
8.1.2 示例数据模型 196
8.1.3 示例应用程序 197
8.2 选择查询 199
8.2.1 select子句 200
8.2.2 from 子句 203
8.2.3 where子句 210
8.2.4 标量表达式 215
8.2.5 order by子句 219
8.3 聚合查询 220
8.3.1 聚合函数 222
8.3.2 group by子句 222
8.3.3 having子句 223
8.4 更新查询 223
8.5 删除查询 224
8.6 本章小结 225
第9章 条件api 226
9.1 概述 226
9.1.1 条件api 226
9.1.2 参数化类型 227
9.1.3 动态查询 228
9.2 构建条件api查询 231
9.2.1 创建查询定义 231
9.2.2 基本结构 232
9.2.3 条件对象和可变性 233
9.2.4 查询根和路径表达式 233
9.2.5 select子句 235
9.2.6 from子句 238
9.2.7 where子句 240
9.2.8 构建表达式 240
9.2.9 order by子句 251
9.2.10 group by和having子句 251
9.3 强类型查询定义 251
9.3.1 元模型api 252
9.3.2 强类型的api概述 253
9.3.3 规范化元模型 254
9.3.4 选择正确的查询类型 256
9.4 本章小结 257
第10章 高级对象-关系映射 258
10.1 表和列名 258
10.2 复杂的嵌入对象 259
10.2.1 高级嵌入映射 260
10.2.2 重写嵌入关系 261
10.3 复合主键 262
10.3.1 id类 263
10.3.2 嵌入id类 264
10.4 派生标识符 266
10.4.1 派生标识符的基本规则 267
10.4.2 共享主键 267
10.4.3 多个映射特性 269
10.4.4 使用embeddedid 270
10.5 高级映射元素 272
10.5.1 只读映射 272
10.5.2 可选性 273
10.6 高级关系 274
10.6.1 使用联接表 274
10.6.2 避免联接表 275
10.6.3 复合联接列 276
10.6.4 孤儿删除 278
10.6.5 映射关系状态 279
10.7 多个表 281
10.8 继承 284
10.8.1 类层次结构 284
10.8.2 继承模型 288
10.8.3 混合继承 294
10.9 本章小结 296
第11章 高级主题 298
11.1 sql查询 298
11.1.1 本地查询与jdbc 299
11.1.2 定义和执行sql查询 301
11.1.3 sql结果集映射 303
11.1.4 参数绑定 309
11.2 生命周期回调 309
11.2.1 生命周期事件 309
11.2.2 回调方法 310
11.2.3 实体侦听器 312
11.2.4 继承和生命周期事件 314
11.3 验证 319
11.3.1 使用约束 319
11.3.2 调用验证 321
11.3.3 验证组 321
11.3.4 创建新的约束 323
11.3.5 jpa中的验证 325
11.3.6 启用验证 326
11.3.7 设置生命周期的验证组 326
11.4 并发性 327
11.4.1 实体操作 327
11.4.2 实体访问 328
11.5 刷新实体状态 328
11.6 锁定 331
11.6.1 乐观锁定 331
11.6.2 悲观锁定 341
11.7 缓存 344
11.7.1 通过层排序 344
11.7.2 共享缓存 346
11.8 utility类 350
11.8.1 persistenceutil 351
11.8.2 persistenceunitutil 351
11.9 本章小结 352
第12章 xml映射文件 353
12.1 元数据困惑 354
12.2 映射文件 354
12.2.1 禁用注解 355
12.2.2 持久化单元默认值 357
12.2.3 映射文件默认值 360
12.2.4 查询和生成器 362
12.2.5 托管类和映射 366
12.3 本章小结 387
第13章 包装和部署 388
13.1 配置持久化单元 388
13.1.1 持久化单元的名称 389
13.1.2 事务类型 389
13.1.3 持久化提供程序 389
13.1.4 数据源 390
13.1.5 映射文件 391
13.1.6 托管类 392
13.1.7 共享缓存模式 394
13.1.8 验证架构 395
13.1.9 添加供应商属性 395
13.2 构建和部署 396
13.2.1 部署类路径 396
13.2.2 包装选项 397
13.2.3 持久化单元的范围 401
13.3 服务器外部 402
13.3.1 配置持久化单元 402
13.3.2 在运行时指定属性 404
13.3.3 系统类路径 404
13.4 架构生成 405
13.4.1 唯一约束 405
13.4.2 null约束 406
13.4.3 基于字符串的列 406
13.4.4 浮点列 407
13.4.5 定义列 407
13.5 本章小结 408
第14章 测试 410
14.1 测试企业应用程序 410
14.1.1 术语 411
14.1.2 在服务器外部测试 412
14.1.3 测试架构 413
14.2 单元测试 413
14.2.1 测试实体 414
14.2.2 测试组件中的实体 415
14.2.3 单元测试中的实体管理器 417
14.3 集成测试 420
14.3.1 使用实体管理器 420
14.3.2 组件和持久化 426
14.4 最佳实践 436
14.5 本章小结 436
第15章 迁移 438
15.1 从cmp实体bean迁移 438
15.1.1 划定挑战的范围 439
15.1.2 实体bean转换 440
15.2 从jdbc迁移 448
15.3 从其他的orm解决方案迁移 449
15.4 利用设计模式 449
15.4.1 传输对象 450
15.4.2 会话外观 453
15.4.3 数据访问对象 455
15.4.4 业务对象 459
15.4.5 快车道读者 459
15.4.6 活动记录 460
15.5 本章小结 460