作者:empty 页数:227 出版社:empty |
面向对象的开发在处理关系型数据库中的数据时是非常麻烦与消耗资源的。开发成本非常高的原因在于:关系型数据库中的数据与程序对象之间不匹配(译者注:数据库中的表如何变成程序的对象) 。Hibernate是JAVA开发环境下对象-关系映射(Object/Relational Mapping及OR M) 的解决方案。OR M是指一种映射技巧, OR M适用于对象模型与关系模型之间的匹配。参考Wk i pedia(维基) 的高级讨论组与Martin Fowler的文章or m Hate, 其中都提到了不匹配带来的问题。
虽然您可能认为已经有了强大的SQL, hibernate不是必需的, 但是在做出判断前请了解一下hi ber hate.同时, 一些基本概念的理解也有助于你对hibernate更快更全面的了解。这些基本概念中,数据建模原则是非常重要的。下面两个文章有助于您了解数据建模原则,http://www.agiledata.org/essays/dataModeling101.html、http://en.wikipedia.org/wiki/Data_modeling了解一些基本的事务处理、设计模式比如:Unit of Work(工作单元)“[PoE A A] 或者“Application Transaction(应用程序事务) ”是非常有益的。这些我们将在本文档中讨论研究,但是预先了解一些会带来很大的帮助。Hibernate不只关心java类到数据库表的映射(java类型到sql类型的匹配) ,还提供了数据查询与检索工具。应用hibernate可以替换你手工处理SQL与JDBC的代码, 它可以显著的减少开发时间.Hibernate的设计目标是减少工程中95%的SQL与JDBC操作。当然还有其它的数据持久化解决方案。但是Hibernate与其它方案不同在于它不阻断您使用强大的SQL与JDBC, 它只是希望您将更多的精力用于关系设计与业务逻辑上。Hibernate可能不是最好的data-centric applications(以数据为中心应用程序)的解决方案,它只是用存储过程来实现数据库业务逻辑。但是它是一个java中间层, 用于提供面向对象的建模与业务逻辑。Hibernate可以帮助您去除与封装数据库提供商特定的Sql代码, 帮助您完成将数据结果集从表格形式转换成对象的形式。参考以下内容,得到相关信息:http://hibernate.org/orm/contribute/提示如果你是刚刚开始使用Hibernate, 您可以从开始“Hibernate GettingStartedGuide(Hibernate入门指南) ”开始文档页, 它包含快速教程以及很多介绍, 还有一系列的专题讨论,适应不同层次的读者。
Hibernate用户手册.
Hibernate-纯java的关系型持久层框.
序言.
Hibernate团队.
JBoss可视化设计团队.
第1章.Ar hit ture(
Architecture(体系架构)
概述.
3.1.1.构建Service Registry.
4.8.2.合并游离态数据
Contextual sessions(session上下文) .
Domain Model(域模型) .
POJO模型.
2.1.1.实现无参构造函数.
2.1.2.
2.1.3.
出提供identifier(标识) 属性.使用非final类.
2.1.4.为持久化属性声明get, set方法.
2.1.5.实现equals 0与hashCode 0方法.
2.2.Dynamic(动态) 模型.
第3章Bootstrap(引导、启动.
3.1.Native(原生、本地) 引导.
3.1.2.构建Metadata.
3.1.3.构建SessionFactory.
3.2.JPA引导JPA Bootstrapping.
3.2.1.JPA兼容模式的引导.
3.2.2.Proprietary 2-phase引导.
第4章持久化Context(上下文) .
4.1.实体持久化.
4.2.删除实体.
4.3.获取没有初始化数据的实体.
4.4.获取已经初始化数据的实体.
4.5.通过natural-id(自然ID) 获得实体.
4.6.刷新实体状态.
4.7.更改托管态或者持久态.
4.8.使用游离态数据.
4.8.1.复位游离态数据(游离态变成托管态).
4.9.验证对象的状态.
4.10.从JPA访问Hibernate.
第5章访问数据库.
5.1.Connection Provider(连接提供器) .
5.1.1.使用DataSources.
5.1.2.使用c3p0.
5.1.3.使用prox ool连接池.
5.1.4.使用Hikari.
5.1.5.
使用Hibernate内置的(不支持) 的连接池.
Connection Provider事务设置.
Root(根) 实体引用.
Scalar(标量) 函数.
数据库Dialect(方言) .
.6.3.4.
13.2.2.Update语句.
13.3.2.
13.4.1.标识变量.
13.4.3.文本说明.
13.4.4.参数.
13.4.8.
第6章事务与并发控制.
6.1.物理事务.
6.1.1.JTA配置.
6.2.Hibernate事务API.
6.3.事务模式(与反模式).
6.3.1.
6.3.2.
6.3.3.
6.4.常见问题.
第7章
第8章锁.
Session-per-operation(每操作一个会话) 反模式.55
Session-per-request(每请求一个会话) 模式.56
Conversations(对话) .57
Session-per-application(每应用一个会话) .58
JNDI.59
乐观锁.60
8.1.1.指定版本号.61
8.1.2.Timestamp(时间戳) .63
8.2.悲观锁.64
8.2.1.Lock Mode类.65
第9章Fetching(抓取) --.66
9.1.基础.66
9.2.应用抓取策略.-.68
9.2.1.不抓取.69
9.2.2.通过查询动态抓取.70
9.2.3.通过配置文件动态抓取.71
第10章批处理.72
10.1.JDBC批处理.72
第11章缓冲.73
11.1.配置二级缓存.-.73
11.1.1.Region Factory(注册工厂).73
11.1.2.缓冲行为.74
11.2.管理缓冲数据.75
第十二章12.拦截器和事件.76
12.1.拦截器(Interceptors.76
12.2.Native(原生、本地) 事件系统.77
12.2.1.Hibernate声明式安全.78
12.3.JPA回调.80
第13章HQL与JP QL.83
13.1.大小写敏感性.85
13.2.语句(Stata ement) 类型.85
13.2.1.Select语句.86
13.2.3.Delete语句.88
13.2.4.Insert语句.88
13.3.FROM子句.89
13.3.1.标识变量.89
13.3.3.显式join.91
13.3.4.隐式join(path表达式) .93
13.3.5.集合成员引用.95
13.3.6.Polymorphism(多态) .97
13.4.表达式.98
13.4.2.路径表达式.98
13.4.5.算术运算.101
13.4.6.Concatenation(串联) (运算) .102
13.4.7.聚合函数.103
13.4.9.集合相关的表达式.106
13.4.10.实体类型.108
13.4.11.CASE表达式.109
13.5.SELECT子句.111
13.6.Predicates(谓词) -.112
第14章Criteria.
关系比较.
空值谓词.
Like谓词.
Between谓词.
In谓词---.
Exists谓词.
空集合谓词.
集合成员谓词.
NOT谓词.
AND谓词.
OR谓词.
Hibernate查询API.
JPA查询API.
选择一个表达式---
Scalar(标量) 查询.
企业级OSGi的JPA容器.
DataSource(数据源) .
WHERE子句---
分组.
排序.
查询API.
14.1.类型化criteria查询.
14.1.1.选择一个实体.
14.1.3.选择多个值.
14.1.4.选择wrapper(封装) .
14.2.Tuple criteria查询.
14.3.FROM子句.
14.3.1.Roots(根) .
14.3.2Joins.
14.3.3.抓取.
14.4.路径表达式.
14.5.使用参数.
第15章Native SQL查询(原生SQL查询, 本地SQL查询) .
15.1.使用SQLQuery.
15.1.2.实体查询.
15.2.命名SQL查询.
15.2.1.
15.3.自定义新建、更新、删除的SQL语句.
15.4.自定义SQL加载.
Chapter 16.
16.1.什么是Multi-tenancy(多租户) .
16.2.多租户数据处理方法.
16.2.1.
16.2.3.
16.3.Hibernate中的Multi-tenancy(多租户) .
16.4.Multi Tenant Connection Provider实现策略.
第17章
17.5.2.persistence.xml.
17.5.4.Bundle包的导入.
处理association(关联) 与集合.
返回多个实体.
返回非托管实体.
处理继承.
参数.
使用return-property显式指定列与别名.
使用存储过程查询.
Multi-tenancy(多租户) .
Separate data ba(独立数据库) .
独立的schema.
数据分区(鉴别器)-.
Multi Tenant Connection Provider.
Current Tenant Identifier Resolver.
mOSGi规范与环境.hibernate-osgi.
17.3.features.xml.
17.4.快速入门与演示.
17.5.容器管理的JPA.
17.6.非托管JPA.
获取Entity Manger(实体管理器) .-
17.6.1.persistence.xml.
获取Entity Manger Factory.
在版本控制中跟踪修改的实体名.
指定一个版本查询类的实体.
按实体类的变化,查询版本.
通过指定属性的变化查询实体的版本.
audit表分区的好处.
选择合适的列为audit表分区.
Audit表分区示例.
Legacy Bootstrapping(过时的引导方式) .
Legacy(过时的) Hibernate Criteria查询.
Detached queries(分离式查询) 与子查询.
非托管Native.
17.7.1.Bundle包的导入.
17.7.2.获取SessionFactory.
17.8.可选模块.
17.9.扩展点.
17.10.附加说明.
第18章Envers.
18.1.基础知识.
18.2配置.
18.3.额外的映射注释.
18.4.选择audit策略.
18.5.版本日志.
版本日志的数据.
18.5.1.
18.6.
18.7.
18.12.1.
18.12.2.
18.12.3.
在属性级别上跟踪实体变化.
查询.
18.7.1.
18.7.2.
18.7.3.
18.7.4.按版本查询实体的修改.
18.8条件audit.
18.9.理解Envers Schema.
18.10.使用Ant生成schema.
18.11.映射异常.
18.11.1.现在不会将来也不会支持的.
18.11.2.现在不会将来会支持的.
18.11.3.@One To Many+@Join Column.
18.12.高级:Audit表分区.
18.13.Envers有关的链接.
第