译者序
序言
前言
关于作者
第1章 引言
1.1 Java对持久化的支持
1.1.1 JDBC
1.1.2 EJB
1.1.3 Java数据对象
1.2 为什么采用另一个标准
1.3 对象关系映射
1.4 Java Persistence API
1.4.1 规范的历史
1.4.2 概述
1.5 小结
第2章 入门
2.1 实体概述
2.1.1 可持久性
2.1.2 标识性
2.1.3 事务性
2.1.4 粒度
2.2 实体元数据
2.2.1 注解
2.2.2 XML
2.2.3 按异常配置
2.3 创建一个实体
2.4 实体管理器
2.4.1 获得实体管理器
2.4.2 持久化实体
2.4.3 发现实体
2.4.4 删除实体
2.4.5 更新实体
2.4.6 事务
2.4.7 查询
2.5 把上述步骤放在一起
2.6 打包
2.6.1 持久化单元
2.6.2 持久化归档
2.7 小结
第3章 企业级应用
3.1 应用组件模型
3.2 会话Bean
3.2.1 无状态会话Bean
3.2.2 状态会话Bean
3.3 消息驱动Bean
3.4 Servlet
3.5 依赖管理
3.5.1 依赖查找
3.5.2 依赖注入
3.5.3 声明依赖
3.6 事务管理
3.6.1 事务回顾
3.6.2 Java企业事务处理
3.7 使用Java EE组件
3.7.1 使用无状态会话Bean
3.7.2 使用有状态会话Bean
3.7.3 使用消息驱动Bean
3.7.4 增加实体管理器
3.8 综述
3.8.1 定义组件
3.8.2 定义用户接口
3.8.3 打包
3.9 小结
第4章 对象关系映射
4.1 持久化注解
4.2 访问实体状态
4.2.1 数据成员访问
4.2.2 成员属性访问
4.3 映射到表
4.4 映射简单类型
4.4.1 字段映射
4.4.2 延迟获取
4.4.3 大对象
4.4.4 枚举类型
4.4.5 时间类型
4.4.6 瞬时状态
4.5 映射主键
4.6 关系
4.6.1 关系的概念
4.6.2 映射概述
4.6.3 单值关联
4.6.4 集合值关联
4.6.5 延迟关系
4.7 小结
第5章 实体管理器
5.1 持久化上下文
5.2 实体管理器
5.2.1 容器管理的实体管理器
5.2.2 应用程序管理的实体管理器
5.3 事务管理
5.3.1 JTA事务管理
5.3.2 本地资源事务
5.3.3 事务回滚和实体状态
5.4 选择实体管理器
5.5 实体管理器操作
5.5.1 持久化一个实体
5.5.2 发现一个实体
5.5.3 删除一个实体
5.5.4 级联操作
5.5.5 清理持久化上下文
5.6 与数据库同步
5.7 脱管与合并
5.7.1 脱管
5.7.2 合并脱管实体
5.7.3 处理脱管实体
5.8 小结
第6章 使用查询
6.1 Java持久化QL
6.1.1 入门
6.1.2 过滤结果
6.1.3 投射结果
6.1.4 实体间连接
6.1.5 聚合查询
6.1.6 查询参数
6.2 定义查询
6.2.1 动态查询定义
6.2.2 命名查询定义
6.3 参数类型
6.4 执行查询
6.4.1 处理查询结果
6.4.2 查询分页
6.4.3 查询和未提交的改变
6.5 批量更新和删除
6.5.1 使用批量更新和删除
6.5.2 批量删除和关系
6.6 查询提示
6.7 查询最佳实践
6.7.1 命名查询
6.7.2 报表查询
6.7.3 查询提示
6.7.4 无状态会话Bean
6.7.5 批量更新和删除
6.7.6 提供者的区别
6.8 小结
第7章 查询语言
7.1 介绍
7.1.1 术语
7.1.2 样例数据模型
7.1.3 样例应用
7.2 选择查询
7.2.1 SEIECT子句
7.2.2 FROM子句
7.2.3 WHERE子句
7.2.4 ORDER BY子句
7.3 聚合查询
7.3.1 聚合函数
7.3.2 GROLJP BY子句
7.3.3 HAVING子句
7.4 更新查询
7.5 删除查询
7.6 小结
第8章 高级对象关系映射
8.1 嵌入式对象
8.2 复合主键
8.2.1 Id类
8.2.2 嵌入式Id类
8.3 高级映射元素
8.3.1 只读映射
8.3.2 可选性
8.4 高级关系
8.4.1 复合连接字段
8.4.2 包括一个关系的标识符
8.4.3 映射关系状态
8.5 多个表
8.6 继承
8.6.1 类层级结构
8.6.2 继承模型
8.6.3 混合继承
8.7 小结
第9章 高级主题
9.1 SQL查询
9.1.1 本地查询与JDBC
9.1.2 定义和执行SQL查询
9.1.3 SQL结果集映射
9.1.4 参数绑定
9.2 生命周期回调
9.2.1 生命周期事件
9.2.2 回调方法
9.2.3 实体监听器
9.2.4 继承和生命周期事件
9.3 并发性
9.3.1 实体操作
9.3.2 实体访问
9.4 刷新实体状态
9.5 锁定
9.5.1 乐观锁定
9.5.2 版本
9.5.3 额外的锁定策略
9.5.4 从乐观失败中恢复
9.6 模式生成
9.6.1 唯一性约束
9.6.2 空值约束
9.6.3 基于字符串的字段
9.6.4 浮点字段
9.6.5 定义字段
9.7 小结
第10章 XML映射文件
10.1 元数据之谜
10.2 映射文件
10.2.1 禁用注解
10.2.2 持久化单元默认值
10.2.3 映射文件默认值
10.2.4 查询和生成器
10.2.5 托管类和映射
10.3 小结
第11章 打包和部署
11.1 配置持久化单元
11.1.1 持久化单元名
11.1.2 事务类型
11.1.3 持久化提供者
11.1.4 数据源
11.1.5 映射文件
11.1.6 托管类
11.1.7 增加供应商属性
11.2 编译和部署
11.2.1 部署classpath
11.2.2 打包选项
11.2.3 持久化单元范围
11.3 在服务器之外
11.3.1 配置持久化单元
11.3.2 在运行时指定属性
11.3.3 系统classpath
11.4 小结
第12章 测试
12.1 测试企业应用
12.1.1 术语
12.1.2 在服务器之外测试
12.1.3 测试框架
12.2 单元测试
12.2.1 测试实体
12.2.2 测试组件中的实体
12.2.3 单元测试中的实体管理器
12.3 集成测试
12.3.1 使用实体管理器
12.3.2 组件和持久化
12.4 最佳实践
12.5 小结
第13章 移植
13.1 从CMP实体Bean移植
13.1.1 定位挑战
13.1.2 实体Bean转换
13.2 从JDBC移植
13.3 从其他ORM解决方案移植
13.4 利用设计模式
13.4.1 传输对象
13.4.2 会话外观
13.4.3 数据访问对象
13.4.4 业务对象
13.4.5 快速道读取器
13.4.6 活动记录
13.5 小结
附录 快速参考