1. 首页
  2. 编程语言
  3. Java
  4. hibernate3[1].1.2中文版学习手册

hibernate3[1].1.2中文版学习手册

上传者: 2020-07-30 20:06:02上传 PDF文件 1.37MB 热度 21次
本文档的翻译是在网络上协作进行的,提供此文档的目的是减缓学习hibernate的坡度,而非替代原文档。建议有能力的读者直接阅读英文原文版。HIBERNATE-符合]ava习惯的关系数据库持久化3.8.J2E应用程序服务器的集成.3.8.1.事务策略配置383.8.2.JND绑定的 Session Factory在JTA环境下使用 Current session context(当前 session上下文)管理..393.8.4.JMX部署4.持久化类( Persistent classes)414.1.一个简单的POJ0例子4.1.1.实现一个默认的(即无参数的)构造方法( constructor)4.1.2.提供一个标识属性( identifier property)(可选)424.1.3.使用非 final的类(可选),434.1.4.为持久化字段声明访问器( accessors)和是否可变的标志( mutators)(可选)434.2.实现继承( Inheritance).4.3.实现 equals和 hashCode(444.4.动态模型( Dynamic models)4.5.元组片断映射( Tuplizers)5.对象/关系数据库射基础( Basic0/ R Mapping5.1.映射定义( Mapping declaration).,,,,,,,,,,485.1.1. Doctype495. 1.2. hibernate-mapping,,,,,495.1.3. class,.,,,,,,,,,,,,,,,,,,,,505.1.4.id5.1.4.1. Generator5.1.4.2.高/低位算法(Hi/ Lo Algori thIn)5.1.4.3.UUID算法( UUID Algorithm)555.1.4.4.标识字段和序列( Identity columns and Sequences)5.1.4.5.程序分配的标识符( Assigned Identifiers)5.1.4.6.斛发器实现的主键生成器( Primary keys assigned by triggers)555. 1.5. composite-id5.1.6.鉴别器( discriminator)5.1.7.版本( version)(可选)575.1.8. timestamp(可选)5.1.10.多对一(many-to-one)5.1.13.组件( component),动态组件( dynamic- component)∵5.1.11对625.1.12.自然ID( natural63,,,,,,,,,,,,,,64es645.1.15.子类( subclass)5.1.16.连接的子类( joined- subclass)5.1.17.联合子类( union- subclass)675.1.18.连接(join)5.1.19.键(ke695.1.20.字段和规则元素( column and formula clements)65.1.21.引用( Import)5.1.225.2. Hibernate的类型715.2.1.实体( Entities)和值( values715.2.2.基木值类型715.2.3.自定义值类型HIBERNATE-符合]ava习惯的关系数据库持久化5.3.多次映射同一个类5.4.SQl中引号包围的标识符745.5.其他元数据( Metadata)5.5.1.使用 XDoclet标记745.5.2.使用JDK5.0的注解( Annotation),,,,,,,,,,,,,..,.765.6.数据库生成属性( Generated Properties)5.7.辅助数据库对象( Auxiliary database Ob jects),,776.集合类( Collections)映射6.1.持久化集合类( Persistent collections6.2.集合映射( Collection mappings)806.2.1.集合外键( Collection forcign keys).816.2.2.集合元素( Collection element s)816.2.3.索引集合类( Indexed collections)..816.2.4.值集合于多对多关联( Collections of values and many-to-manyassociat. ions6.2.5.一对多关联(0ne-to- many Associations)846.3.高级集合映射( Advanced collection mappings)856.3.1.有序集合( Sorted collections)6.3.2.双向关联( Bidirectional associations)6.3.3.双向关联,涉及有序集合类..876.3.4.三重关联( Ternary associations)6.3.5.使用< idbag>6.4.集合例子( Collection example)QO7.关联关系映射921.介绍927.2.单向关联( Unidirectional associations)7.2.1.多对一( many te7.2.2.一对一( one to one)7.2.3.一对多( one to many)...937.3.使用连接表的单向关联( Unidirectional associations with join tables)..947.3.1.一对多( one to many)..947.3.2.多对( many to one).947.3.3.一对一( one to one)957.3.4.多对多( many to many)7.4.双向关联( Bidirectional associations)7.4.1.一对多( one to many)/多对一( many to one)7.4.2.一对一( one to one)..977.5.使用连接表的双向关联( Bidirectional associations with join tables)..987.5.1.一对多( one to many)/多对一( manly to one)7.5.2.一对一( one to one)......997.5.3.多对多( many to many)7.6.更复杂的关联映射,,,,,,,,,,,,,,1008.组件( Component)映射1028.1.依赖对象( Dependent objects)1028.2.在集合中出岘的依赖对象( Collections of dependent ob jects)1038.3.组什作为Map的索引( Components as map indices)1058.4.组件作为联合标识符( Components as composite identifiers)8.5.动态组件( Dynamic components).1069.绊承映射( Inheritance mappings),,,108Hibernate 3.1.2HIBERNATE-符合Java习惯的关系数据库持久化9.1.三种策略9.1.1.每个类分层结构一张表( Table per class hierarchy)1089.1.2.每个子类一张表( Table per subclass)....1099.1.3.每个子类一张表( Table per subclass),使用辨别标志( Discriminator)1099.1.4.混合使用“每个类分层结构一张表”和“每个子类一张表”9.1.5.每个具体类一张表( Table per concrete class)l109.1.6. Table per concrete class, using implicit polymorphism ..........1119.1.7.隐式多态和其他继承映射混合使用1129.2.限制11310.与对象共事10.1. Hibernate对象状态( object statcs)11410.2.使对象持久化11410.3.装载对象10.4.查询11610.4.1.执行查询10.4.1.1.迭代式获取结果( Iterating results)11710.4.1.2.返回元组( tuples)的查询.11710.4.1.3.标量( Scalar)结果10.4.1.4.绑定参数11810.4.1.5.分页11810.4.1.6.可滚动遍历( Scrollable iteration)10.4.1.7.外置命名查询( Externalizing named queries)11910.4.2.过滤集合.,11910.4.3.条件查询( Critcria queries)....,,,,,,,,,,,,,,,,,,,,12010.4.4.使用原生SQL的査询.12010.5.修改持久对象,12110.6.修改脱管( Detached)对象12110.7.自动状态检测...12210.8.删除持久对象12310.9.在两个不同数据库间复制对象e··10.10. Session刷出( flush).12410.11.传播性持久化( transitive persistence)10.12.使用数据·鲁11.事务和并发12711.1. Session和事务范围( transaction scope)12711.1.1.操作单元( Unit of work)12711.1.2.长对话..1281.1.3.关注对象标识( Considering object identity)12911.1.4.常见问题申申··,.,12911.2.数据库事务声明...13011.2.1.非托管环境11.2.2.使用JTA13111.2.3.异常处理13311.2.4.事务超时乐观并发控制( Optimistic concurrency control)13411.3.1.应用程序级别的版本检查( Application version checking)13411.3.2.打展周期的 session和自动版本化11.3.3.脱管对象( deatched object和自动版木化13611.3.4.定制自动版本化行为,,,136Hibernate 3.1.2HIBERNATE-符合]ava习惯的关系数据库持久化11.4.悲观锁定( Pessimistic locking),,,,,,,..13611.5.连接释放模式( Connection release mode1372.拦截器与事件( Interceptors and events)1312.1.拦截器( Interceptors),,,,,,,,,,.,13912.2.事件系统( Event systcm)14112.3. Hibernate的声明式安全机制14213.批量处理( Batch processing),14313.1.批量插入( Batch inserts),,14313.2.批量更新( Batch updates)14313.3. Statelesssession(无状态 session)接口..,14413.4.DML(数据操作话言)风格的操作(DML- style opcrations)14514.HQL: Hibernate查询语言..14714.1.大小写敏感性问题14714.2.from子句14714.3.关联( Association)与连接(Join)14714.4.join语法的形式14914.5. select子句11914.6.聚集函数15014.7.多态查询,,,,,,.150子句,15114.9.表达式.15214.10. order by子句14.11. group by子句14.12.子查询,,15614.13.HQL示例.15714.14.批量的 UPDATE和 DELETE15914.15.小技巧&小窍门15915.条件查询( Criteria Queries)...16115.1.创建一个 Criteria实例,16115.2.限制结果集内容1615.3.结果集排序l6215.4.关联,16215.5.动态关联抓取..16315.6.查询示例...,,16315.7.投影( Projections)、聚合( aggregation)和分组( grouping)16415.8.离线( detached)查询和子查询.,,,,,,,,,,,,,16515.9.根据自然标识查询( Queries by natural identifier)....16616. Native SQL查询16716.1.使用 SQLQuery申申··,16716.2.别名和属性引用...16816.3.命名SQL查询16916.3.1.使用 return-property来明确地指定字段/别名17016.3.2.使用存储过程来查询17116.3.2.1.使用存储过程的规则和限制17116.4.定制SQL用来 create, update和 delete172定制装载SQI....17317.过滤数据17.1. Hibernate过滤器( filters)18.XML映射178Hibernate 3.1.2VIHIBERNATE-符合]ava习惯的关系数据库持久化18.1.用XML数据进行工作17818.1.1.指定同时映射XM和类18.1.2.只定义XML映射17818.2.XML映射元数据,,,,,,,,,,,,17918.3.操作XM数据18119.提升性能l8219.1.抓取策略( Felching stralegies),18219.1.1.操作延迟加载的关联,,18319.1.2.调整抓取策略( Tuning fetch strategies)....18319.1.3.单端关联代理( Single- ended association proxies),18419.1.4.实例化集合和代理( Initializing collections and proxies)18519.1.5.使用批量抓取( Using batch fetching18619.1.6.使用子查询抓取( Using subselect fetching)1879.1.7.使用延迟属性抓取( Using lazy property fetching)18719.2.二级缓存( The second level cache18819.2.1.缓存映射( Cache mappings)18919.2.2.策略:只读缓存〈 Strategy: read only)18919.2.3.策略:读/写缓存( Strategy:read/ write)18919.2.4.策略:非严格读/写缓存( Strategy: nonstrict read/ write)19019.2.5.策略:事务缓存( transactional),19019.3.管理缓存( Managing the caches).19019.4.查询缓存( The Query Cache)19.5.理解集合性能( Unders tanding Collection per formance,∵,,,,,,,191,19219.5.1.分类( Taxonomy).,,,,,,,,,,,,,,,,,,,,19219.5.2. Lists,maps和sets用于更新效率最高.19319.5.3.Bag和1is是反向集合类中效率最高的19319.5.4.一次性删除( One shot delete)...19319.6.监测性能( Monitoring performance)...19419.6.1.监测 SessionFactory..19419.6.2.数据记录( Metrics).,,,,19520.工具箱指南19620.1. Schema自动生成( Automatic schema generation)19620.1.1.对 schema定制化( Customizing the schema)运行该工具19820.1.3.属性( Properties1990.1.4.使用Ant( Using Ant)19920.1.5.对 schema的增量更新( Incremental schema updates.20020.1.6.用Ant来增量更新 schema( Using ant for incremental schema updates)20020.1.7. Schema校验20120.1.8.使用Ant进行 schema校验20121.示例:父子关系( Parent Child Relationships)21.1.关于 collections需要注意的一点,20221.2.双向的一对多关系( Bidirectional onc-to-many)20221.3.级联生命周期( Cascading lifecycle)20421.4.级联与未保存值( Cascades and unsaved- value)21.5.结20522.示例: Weblog应用程序持久化类2062.2. Hibernate映射HIBERNATE-符合]ava习惯的关系数据库持久化22.3. Hibernate代码20823.示例:复杂映射实例21323.1. Employer(雇主)/ Employee(雇员)21323.2. Author(作家)/Work(作品)21423.3. Customer(客户)/ Order(订单/ Produc(产品)2163.4.杂例2」23.4.1.Typed one-to-one association21823.4.2. Composite key example21923.4.3.共有组合键属性的多对多(Many- to-many with shared composite keyattribute23. 4.4. Contcnt bascd discrimination2123. 4.5. Associations on alternate keys...22224.最佳实践( Best practices)224Hibernate 3.1.2v111前言WARNING This is a translated version of the English Hibernate reference documentationThe translated version night not be up to date! However, the differences should only bevery minor. Consult the English reference documentation if you are missing information orencounter a translation error. If you like to contribute to a particular translationcontact us on the Hibernate developer mailing listTranslator(s):RedSagatranslateTeam满江红翻译团队在令日的个业环境中,把面向对象的软件和关系数捃库一起使用可能是相当麻烦、浪费时间的。Hibernate是一个面向Java环境的对象/关系数据库映射工具。对象/关系数据厍映射( object/ relational mapping(OR)这个术语表示一种技术,用来把对象模型表示的对象怏射到基于S①L的关系模型数据结构中去。Hibernate不仅仅管理Java关到数据厍表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据庳中使用存储过程来实堄商业逻辑, Hibernate可能不是最好的解决方案;对于那些在基于Java的中闫层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。不管怎样, Hibernate一定可以帮助你消除或者包装那些针对特定厂商的SL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。如果你对 Hibernate和对象/关系数据库映射还是个新手,或者甚至对Java也不熟悉,请按照卜面的步骤来学习。1.阅读第1章 Hibernate入门,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/ reference/ tutorial/目录下找到。2.阅读第2章体系结构( Architecture)来理斛 Hibernate可以使用的环境。3.查看 Hibernate发行包中的e/目录,里面有一个简单的独立运行的程序。把你的JDBC驱动拷贝到ib/日录下,修改一下src/ hibernate. propertles,指定其中你的数据库的信息。进入命令行,切换到你的发行包的目录,输入 ant eg(使用了Ant),或者在 Windows操作系统中使用 build eg4.把这份参考文档作为你学的主要信总来源5.在 Hibernate的网站上可以找到经常提问的问题与解答(FAQ)。6.在 Hibernate网站上还有第三方的演示、示例和教程的链接。7. Hibernate网站的“社区( Community arca)”是讨论关于设计模式以及很多整合方案( TomcatJBosS AS, Struts,EJB,等等)的好地方。如果你有问题,请使用 Hibernate网站上链接的用户论坛。我们也提供一个JIRA问题追踪系统,来搜集bug报告和新功能请求。如果你对开发 Hibernate有兴趣,请加入开发者的邮件列表。( Hibernate网站上的用户论坛有一个中文版面, JavaLe也有 ibernate中文版面,您可以在那里父流问题与经验。)商业开发、产品支持和 Hibernate培训可以通过 JBoss Inc.获得。(请查阅Hibernate 3.1.2前常http://www.hibernate.org/Supporttraining/).Hibernate是一个专业的开放源代码项目(Professional Open Source project), t] EJBoss Enterprise Middleware System(JEMS), JBOSs e业级中间件系统的一个核心组件。1.翻译说明本文档的翻译是在网络上协作进行的,也会不断根据 Hibernate升级进行更新。提供此文档的目的是为了减缓学习 ibernate的坡度,而非代替原文档。我们建议所有有能力的读者都直接阅读英文原文。若您对翻译有异议,或发现翻泽错误,敬请不吝赐教,报告到如下emaⅱ地址:caoatredsaga.comHibernate版本3的翻译由满江红翻译闭队( RedSaga translatc Tcam)集体进行,这也是一次大规模网络翻译的试验。在不到20天的时间内,我们完成了两百多页文档的翻译,这一成果是通过十几位网友集休努力完成的。通过这次翻译,我们也有了一食完整的沇程,从初译、技术审核一直到文宇审核、发布。我们的翻译閉队还公继续完善我们的翻译流稈,并翻译其他优秀的Java开源资料,敬请期待。表1. Hibernate y3翻译扌队序号标题中文标题V3翻译V3审校Quickstart with在 Tomcat中快速上手曹晓钢ZouJmmcat(3.1版本中取消)#1TurtotialHibernate入门Zheng shuai2Architecture体系结构Hilton(BUG)厌倦发杲#3Configuration配置Gonchamochow#4Persistent classes持久化类曹晓钢mochowBasic o/ R Mapping对象/关系数据库映 InoLEKingfish射基础(上)对象/关系数据库映 inter dudu刘国堆( vincent)射基础(下)Collection Mapping集合类映射曹晓钢robbinassocialion关联关系映射Robbindevils, advocateMappingsComponent mapping组件映射曹晓钢obbinInheritance继承映射morning (bug)mochowMappings#10Workwith与对象共事程广楠厌倦发呆jcct#11Transactions^nd事务和并发Robbinmochowcurrency#12Interceptors and继承映射七彩狼(BJUG)厌倦发杲eⅤenLsX
用户评论