当前位置:首页 > 工业技术
Hibernate实战  第2版
Hibernate实战  第2版

Hibernate实战 第2版PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:(德)CHRISTIANBAUER,(澳)GAVINKING,(美)GARYGREGORY著;蒲成译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302448082
  • 页数:512 页
图书介绍:理解对象/关系持久化、启动项目、领域模型和元数据、映射持久化类、映射值类型、映射继承、映射集合和实体关联、高级实体关联映射、复杂的和遗留的模式、管理数据、事务和并发、抓取计划/策略/配置、过滤数据、创建和执行查询、查询语言、高级查询选项、自定义SQL
《Hibernate实战 第2版》目录
标签:实战

第Ⅰ部分 ORM入门 1

第1章 理解对象/关系持久化 1

1.1 持久化的定义 4

1.1.1 关系型数据库 4

1.1.2 理解SQL 5

1.1.3 在Java中使用SQL 5

1.2 范式不匹配 7

1.2.1 粒度问题 8

1.2.2 子类型问题 10

1.2.3 标识问题 11

1.2.4 与关联相关的问题 12

1.2.5 数据导航的问题 13

1.3 ORM和JPA 14

1.4 本章小结 15

第2章 开启一个项目 17

2.1 Hibernate介绍 17

2.2 使用JPA的“Hello World” 18

2.2.1 配置一个持久化单元 18

2.2.2 编写一个持久化类 20

2.2.3 存储和加载消息 21

2.3 原生Hibernate配置 23

2.4 本章小结 26

第3章 域模型和元数据 27

3.1 CaveatEmptor示例应用程序 28

3.1.1 一个分层架构 28

3.1.2 分析业务域 29

3.1.3 CaveatEmptor域模型 30

3.2 实现域模型 31

3.2.1 处理关注点渗漏 31

3.2.2 透明及自动持久化 32

3.2.3 编写可持久化类 33

3.2.4 实现POJO关联 36

3.3 域模型元数据 39

3.3.1 基于注解的元数据 40

3.3.2 应用Bean验证规则 42

3.3.3 使用XML文件外部化元数据 45

3.3.4 在运行时访问元数据 48

3.4 本章小结 51

第Ⅱ部分 映射策略 55

第4章 映射持久化类 55

4.1 理解实体和值类型 55

4.1.1 细粒度域模型 55

4.1.2 定义应用程序概念 56

4.1.3 区分实体和值类型 57

4.2 映射具有标识的实体 58

4.2.1 理解Java标识和相等性 58

4.2.2 第一个实体类和映射 59

4.2.3 选择一个主键 60

4.2.4 配置键生成器 61

4.2.5 标识符生成器策略 63

4.3 实体映射选项 66

4.3.1 控制名称 66

4.3.2 动态SQL生成 69

4.3.3 让实体不可变 69

4.3.4 将一个实体映射到子查询 70

4.4 本章小结 71

第5章 映射值类型 73

5.1 映射基本属性 73

5.1.1 重写基本属性的默认设置 74

5.1.2 自定义属性访问 75

5.1.3 使用派生属性 77

5.1.4 转换列值 77

5.1.5 生成的以及默认的属性值 78

5.1.6 时序属性 79

5.1.7 映射枚举 80

5.2 映射可嵌入组件 80

5.2.1 数据库架构 81

5.2.2 让类可嵌入 81

5.2.3 重写嵌入属性 84

5.2.4 映射嵌套的可嵌入组件 85

5.3 使用转换器映射Java和SQL类型 87

5.3.1 内置类型 87

5.3.2 创建自定义JPA转换器 92

5.3.3 使用UserTypes扩展Hibernate 98

5.4 本章小结 104

第6章 映射继承关系 105

6.1 每个带有隐式多态的具体类使用一个表 105

6.2 每个带有联合的具体类使用一个表 107

6.3 每个类层次结构使用一个表 109

6.4 每个带有联结的子类使用一个表 112

6.5 混合继承策略 115

6.6 可嵌入类的继承 117

6.7 选择一种策略 119

6.8 多态关联 120

6.8.1 多态多对一关联 121

6.8.2 多态集合 123

6.9 本章小结 124

第7章 映射集合和实体关联 125

7.1 集、包、列表及值类型映射 125

7.1.1 数据库架构 126

7.1.2 创建和映射一个集合属性 126

7.1.3 选择集合接口 127

7.1.4 映射集 128

7.1.5 映射标识符包 129

7.1.6 映射列表 130

7.1.7 映射一个映射 132

7.1.8 排列和排序集合 132

7.2 组件集合 135

7.2.1 组件实例的相等性 136

7.2.2 组件集 138

7.2.3 组件包 139

7.2.4 组件值的映射 141

7.2.5 作为映射键的组件 142

7.2.6 可嵌入组件中的集合 143

7.3 映射实体关联 144

7.3.1 最简单的可能关联 145

7.3.2 让其变成双向的 146

7.3.3 级联状态 147

7.4 本章小结 153

第8章 高级实体关联映射 155

8.1 一对一关联 155

8.1.1 共享主键 156

8.1.2 外主键生成器 158

8.1.3 使用一个外键联结列 161

8.1.4 使用一个联结表 162

8.2 一对多关联 164

8.2.1 考虑一对多包 164

8.2.2 单向和双向列表映射 166

8.2.3 具有联结表的可选一对多 168

8.2.4 可嵌入类中的一对多关联 169

8.3 多对多和三元关联 171

8.3.1 单向和双向多对多关联 172

8.3.2 具有中间实体的多对多关联 173

8.3.3 具有组件的三元关联 177

8.4 具有映射的实体关联 180

8.4.1 具有属性键的一对多关联 180

8.4.2 键/值三元关系 181

8.5 本章小结 182

第9章 复杂和遗留模式 185

9.1 改进数据库架构 186

9.1.1 添加辅助数据库对象 186

9.1.2 SQL约束 189

9.1.3 创建索引 194

9.2 处理遗留键 195

9.2.1 映射一个自然主键 195

9.2.2 映射一个组合主键 196

9.2.3 组合主键中的外键 198

9.2.4 引用组合主键的外键 201

9.2.5 引用非主键的外键 202

9.3 将属性映射到辅助表 203

9.4 本章小结 204

第Ⅲ部分 事务性数据处理 207

第10章 管理数据 207

10.1 持久化生命周期 207

10.1.1 实体实例状态 208

10.1.2 持久化上下文 209

10.2 EntiryManager接口 211

10.2.1 规范的工作单元 211

10.2.2 使数据持久化 212

10.2.3 检索和修改持久化数据 213

10.2.4 得到一个引用 215

10.2.5 让数据变成瞬时的 216

10.2.6 刷新数据 217

10.2.7 复制数据 217

10.2.8 在持久化上下文中缓存 218

10.2.9 刷新持久化上下文 220

10.3 处理分离的状态 221

10.3.1 分离实例的标识 221

10.3.2 实现相等性方法 223

10.3.3 分离实体实例 225

10.3.4 合并实体实例 226

10.4 本章小结 227

第11章 事务和并发 229

11.1 事务的要素 229

11.1.1 ACID属性 230

11.1.2 数据库和系统事务 230

11.1.3 使用JTA的编程式事务 230

11.1.4 处理异常 232

11.1.5 声明式事务分界 234

11.2 控制并发访问 234

11.2.1 理解数据库级别的并发 235

11.2.2 乐观并发控制 239

11.2.3 显式悲观锁 245

11.2.4 避免死锁 248

11.3 非事务性数据访问 249

11.3.1 在自动提交模式中读取数据 250

11.3.2 对修改进行排队 251

11.4 本章小结 253

第12章 抓取计划、策略和配置文件 255

12.1 延迟加载和急加载 256

12.1.1 理解实体代理 256

12.1.2 延迟持久化集合 260

12.1.3 使用拦截进行延迟加载 262

12.1.4 关联和集合的急加载 264

12.2 选择一个抓取策略 266

12.2.1 n+1查询问题 266

12.2.2 笛卡尔积问题 267

12.2.3 批量预抓取数据 270

12.2.4 使用子查询预抓取集合 272

12.2.5 使用多个SELECT进行急抓取 273

12.2.6 动态急抓取 274

12.3 使用抓取配置文件 275

12.3.1 声明Hibernate抓取配置文件 276

12.3.2 使用实体图 277

12.4 本章小结 281

第13章 数据过滤 283

13.1 级联状态迁移 284

13.1.1 可用的级联选项 284

13.1.2 传递式分离与合并 285

13.1.3 级联刷新 287

13.1.4 级联复制 289

13.1.5 启用全局传递式持久化 290

13.2 侦听和拦截事件 290

13.2.1 JPA事件侦听器和回调 291

13.2.2 实现Hibernate拦截器 294

13.2.3 核心事件系统 298

13.3 使用Hibernate Envers进行审计和版本控制 299

13.3.1 启用审计日志 300

13.3.2 创建审计追踪 301

13.3.3 找出版本 301

13.3.4 访问历史数据 303

13.4 动态数据过滤器 305

13.4.1 定义动态过滤器 306

13.4.2 应用过滤器 306

13.4.3 启用过滤器 307

13.4.4 过滤集合访问 308

13.5 本章小结 309

第Ⅳ部分 编写查询 313

第14章 创建和执行查询 313

14.1 创建查询 314

14.1.1 JPA查询接口 314

14.1.2 类型化查询结果 316

14.1.3 Hibernate的查询接口 316

14.2 准备查询 318

14.2.1 防止SQL注入攻击 318

14.2.2 绑定命名参数 318

14.2.3 使用定位参数 320

14.2.4 对大结果集分页 320

14.3 执行查询 322

14.3.1 列示所有结果 322

14.3.2 得到单个结果 322

14.3.3 滚动数据库游标 323

14.3.4 遍历一个结果 325

14.4 命名和外部化查询 326

14.4.1 调用一个命名查询 326

14.4.2 在XML元数据中定义查询 326

14.4.3 使用注解定义查询 327

14.4.4 编程式定义命名查询 328

14.5 查询提示 329

14.5.1 设置一个超时时长 330

14.5.2 设置刷新模式 330

14.5.3 设置只读模式 331

14.5.4 设置一个抓取大小 331

14.5.5 设置一个SQL注释 331

14.5.6 命名的查询提示 332

14.6 本章小结 333

第15章 查询语言 335

15.1 选择 336

15.1.1 指定别名和查询根 336

15.1.2 多态查询 337

15.2 限制 338

15.2.1 比较表达式 339

15.2.2 使用集合的表达式 344

15.2.3 调用函数 345

15.2.4 对查询结果排序 347

15.3 投影 348

15.3.1 实体和标量值的投影 348

15.3.2 使用动态实例化 350

15.3.3 得到唯一结果 351

15.3.4 在投影中调用函数 352

15.3.5 聚合函数 354

15.3.6 分组 355

15.4 联结 357

15.4.1 使用SQL进行联结 357

15.4.2 JPA中的联结选项 359

15.4.3 隐式关联联结 359

15.4.4 显式联结 361

15.4.5 使用联结进行动态抓取 363

15.4.6 theta风格的联结 366

15.4.7 比较标识符 367

15.5 子查询 369

15.5.1 相关与不相关的嵌套 369

15.5.2 量化 370

15.6 本章小结 371

第16章 高级查询选项 373

16.1 转换查询结果 373

16.1.1 返回一系列列表 374

16.1.2 返回一系列映射 375

16.1.3 将别名映射到bean属性 376

16.1.4 编写一个ResultTransformer 376

16.2 过滤集合 377

16.3 Hibernate条件查询API 380

16.3.1 选择和排序 380

16.3.2 限制 381

16.3.3 投影和聚合 382

16.3.4 联结 383

16.3.5 子查询 385

16.3.6 示例查询 385

16.4 本章小结 387

第17章 自定义SQL 389

17.1 回退到JDBC 390

17.2 映射SQL查询结果 391

17.2.1 使用SQL查询进行投影 392

17.2.2 映射到一个实体类 393

17.2.3 自定义结果映射 395

17.2.4 外部化原生查询 406

17.3 自定义CRUD操作 410

17.3.1 启用自定义加载器 410

17.3.2 自定义创建、更新和删除 411

17.3.3 自定义集合操作 412

17.3.4 在自定义加载器中急抓取 414

17.4 调用存储过程 417

17.4.1 返回一个结果集 418

17.4.2 返回多个结果以及更新计数 419

17.4.3 设置输入和输出参数 421

17.4.4 返回一个游标 423

17.5 将存储过程用于CRUD 425

17.5.1 自定义一个具有过程的加载器 425

17.5.2 用于CUD的过程 426

17.6 本章小结 428

第V部分 构建应用程序 431

第18章 设计客户端/服务器应用程序 431

18.1 创建持久化层 432

18.1.1 一种通用的数据访问对象模式 433

18.1.2 实现通用接口 434

18.1.3 实现实体DAO 436

18.1.4 测试持久化层 438

18.2 构建一个无状态服务器 439

18.2.1 编辑一个拍卖商品 440

18.2.2 放置出价 442

18.2.3 分析无状态应用程序 446

18.3 构建一个状态服务器 447

18.3.1 编辑一个拍卖商品 448

18.3.2 分析状态性应用程序 452

18.4 本章小结 454

第19章 构建Web应用程序 455

19.1 集成JPA与CDI 455

19.1.1 生成一个EntityManager 456

19.1.2 将EntityManager与事务联结起来 457

19.1.3 注入一个EntityManager 458

19.2 数据的分页和排序 459

19.2.1 偏移量分页与搜寻分页对比 459

19.2.2 在持久化层中分页 461

19.2.3 逐页查询 466

19.3 构建JSF应用程序 468

19.3.1 请求作用域服务 468

19.3.2 会话作用域服务 471

19.4 序列化域模型数据 478

19.4.1 编写一个JAX-RS服务 479

19.4.2 应用JAXB映射 480

19.4.3 序列化Hibernate代理 482

19.5 本章小结 485

第20章 扩展Hibernate 487

20.1 大量和批量处理 487

20.1.1 JPQL和条件中的大批量语句 488

20.1.2 SQL中的大批量语句 492

20.1.3 批处理 493

20.1.4 Hibernate StatelessSession接口 496

20.2 缓存数据 498

20.2.1 Hibernate共享的缓存架构 498

20.2.2 配置共享缓存 502

20.2.3 启用实体和集合缓存 503

20.2.4 测试共享缓存 506

20.2.5 设置缓存模式 508

20.2.6 控制共享缓存 509

20.2.7 查询结果缓存 510

20.3 本章小结 512

相关图书
作者其它书籍
返回顶部