前言

WARNING! This is a translated version of the English Hibernate reference documentation. The translated version might not be up to date! However, the differences should only be very minor. Consult the English reference documentation if you are missing information or encounter a translation error. If you like to contribute to a particular translation, contact us on the Hibernate developer mailing list.

Translator(s): RedSaga Translate Team 满江红翻译团队 <caoxg@yahoo.com>

在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。Hibernate是一个面向Java环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping (ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。

Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。

Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。不管怎样,Hibernate一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。

如果你对Hibernate和对象/关系数据库映射还是个新手,或者甚至对Java也不熟悉,请按照下面的步骤来学习。

  1. 阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。

  2. 阅读第 2 章 体系结构(Architecture)来理解Hibernate可以使用的环境。

  3. 查看Hibernate发行包中的eg/目录,里面有一个简单的独立运行的程序。把你的JDBC驱动拷贝到lib/目录下,修改一下src/hibernate.properties,指定其中你的数据库的信息。进入命令行,切换到你的发行包的目录,输入ant eg(使用了Ant),或者在Windows操作系统中使用build eg

  4. 把这份参考文档作为你学习的主要信息来源。

  5. 在Hibernate 的网站上可以找到经常提问的问题与解答(FAQ)。

  6. 在Hibernate网站上还有第三方的演示、示例和教程的链接。

  7. Hibernate网站的“社区(Community Area)”是讨论关于设计模式以及很多整合方案(Tomcat, JBoss AS, Struts, EJB,等等)的好地方。

如果你有问题,请使用Hibernate网站上链接的用户论坛。我们也提供一个JIRA问题追踪系统,来搜集bug报告和新功能请求。如果你对开发Hibernate有兴趣,请加入开发者的邮件列表。(Hibernate网站上的用户论坛有一个中文版面,JavaEye也有Hibernate中文版面,您可以在那里交流问题与经验。)

商业开发、产品支持和Hibernate培训可以通过JBoss Inc.获得。(请查阅:http://www.hibernate.org/SupportTraining/)。 Hibernate是一个专业的开放源代码项目(Professional Open Source project),也是JBoss Enterprise Middleware System(JEMS),JBoss企业级中间件系统的一个核心组件。

1. 翻译说明

本文档的翻译是在网络上协作进行的,也会不断根据Hibernate的升级进行更新。提供此文档的目的是为了减缓学习Hibernate的坡度,而非代替原文档。我们建议所有有能力的读者都直接阅读英文原文。若您对翻译有异议,或发现翻译错误,敬请不吝赐教,报告到如下email地址:cao at redsaga.com

Hibernate版本3的翻译由满江红翻译团队(RedSaga Translate Team)集体进行,这也是一次大规模网络翻译的试验。在不到20天的时间内,我们完成了两百多页文档的翻译,这一成果是通过十几位网友集体努力完成的。通过这次翻译,我们也有了一套完整的流程,从初译、技术审核一直到文字审核、发布。我们的翻译团队还会继续完善我们的翻译流程,并翻译其他优秀的Java开源资料,敬请期待。

表 1.  Hibernate v3翻译团队

序号 标题 中文标题 v3翻译 v3审校 v3.1审校
--Quickstart with Tomcat在Tomcat中快速上手(3.1版本中取消)曹晓钢zoujm--
#1TurtotialHibernate入门Zheng Shuai-Sean Chan
#2Architecture体系结构Hilton(BJUG)厌倦发呆Sean Chan
#3Configuration配置Gonchamochowzcgly
#4Persistent Classes持久化类曹晓钢mochowDigitalSonic
#5Basic O/R Mapping对象/关系数据库映射基础(上)moxieKingfish张成钢
  对象/关系数据库映射基础(下)inter_dudu刘国雄(vincent)张成钢
#6Collection Mapping集合类映射曹晓钢robbin--
#7Association Mappings关联关系映射Robbindevils.advocate--
#8Component Mapping组件映射曹晓钢RobbinSong guo qiang
#9Inheritance Mappings继承映射morning(BJUG)mochowLiang cheng
#10Working with objects与对象共事程广楠厌倦发呆--
#11Transactions And Concurrency事务和并发Robbinmochow--
#12Interceptors and events继承映射七彩狼(BJUG)厌倦发呆--
#13Batch processing批量处理Kingfish(BJUG)厌倦发呆--
#14HQL: The Hibernate Query LanguageHQL: Hibernate查询语言郑浩(BJUG)Zheng Shuai--
#15Criteria Queries条件查询nemo(BJUG)Zheng Shuai--
#16Native SQLNative SQL查询似水流年zoujm--
#17Filters过滤数据冰云(BJUG)Goncha--
#18XML MappingXML映射edward(BJUG)Gonchahuxb
#19Improving performance性能提升WangjinfengRobbin--
#20Toolset Guide工具箱指南曹晓钢Robbin--
#21Example: Parent/Child示例:父子关系曹晓钢devils.advocate--
#22Example: Weblog Application示例:Weblog 应用程序曹晓钢devils.advocate--
#23Example: Various Mappings示例:多种映射shidu(BJUG)冰云--
#24Best Practices最佳实践曹晓钢冰云--

关于我们

满江红.开源, http://www.redsaga.com

从成立之初就致力于Java开放源代码在中国的传播与发展,与国内多个Java团体及出版社有深入交流。坚持少说多做的原则,目前有两个团队,“OpenDoc团队”与“翻译团队”,本翻译文档即为翻译团队作品。OpenDoc团队已经推出包括Hibernate、iBatis、Spring、WebWork的多份开放文档,并于2005年5月在Hibernate开放文档基础上扩充成书,出版了原创书籍:《深入浅出Hibernate》,本书400余页,适合各个层次的Hibernate用户。(http://www.redsaga.com/hibernate_book.html)敬请支持。

北京Java用户组, http://www.bjug.org

Beiing Java User Group,民间技术交流组织,成立于2004年6月。以交流与共享为宗旨,每两周举行一次技术聚会活动。BJUG的目标是,通过小部分人的努力,形成一个技术社群,创建良好的交流氛围,并将新的技术和思想推广到整个IT界,让我们共同进步。

Java视线, http://www.javaeye.com

Java视线在是Hibernate中文论坛(http://www.hibernate.org.cn,Hibernate中文论坛是中国最早的Hibernate专业用户论坛,为Hibernate在中国的推广做出了巨大的贡献)基础上发展起来的Java深度技术网站,目标是成为一个高品质的,有思想深度的、原创精神的Java技术交流网站,为软件从业人员提供一个自由的交流技术,交流思想和交流信息的平台。

致谢

还有一些朋友给我们发来了勘误,在此致谢:Kurapica,李毅,李海林。

2. 版权声明

Hibernate英文文档属于Hibernate发行包的一部分,遵循LGPL协议。本翻译版本同样遵循LGPL协议。参与翻译的译者一致同意放弃除署名权外对本翻译版本的其它权利要求。

您可以自由链接、下载、传播此文档,或者放置在您的网站上,甚至作为产品的一部分发行。但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明,并不能违反LGPL协议。这里“完整”的含义是,不能进行任何删除/增添/注解。若有删除/增添/注解,必须逐段明确声明那些部分并非本文档的一部分。