网站大量收购闲置独家精品文档,联系QQ:2885784924

第12章 Hibernate的ORM映射.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.hilo标识符生成器 hilo 按照high/low算法的实现, 从数据库的特定表字段中获取high值 id name=id type=long column=cat_id generator class=hilo param name=tablehi_value/param param name=columnnext_value/param param name=max_lo100/param /generator 6.native标识符生成器 根据底层数据库的能力选择identity, sequence 或者hilo中的一个 hibernate-mapping package=eg class name=Cat table=cats !-- 主键映射 -- id name=id type=long column=cat_id generator class=“native/ /id 如果从头设计数据库表,就应避免使用自然主键,但是已经使用了自然主键的模型,Hibernate也提供了映射方案 如果需要应用程序分配一个标示符而非Hibernate来生成(如某些时候可能已经有了这种ID,如学号,书号等等,希望直接使用这些有意思的属性作为表达主键)。可以使用assigned生成器。这种特殊的生成器会使用已经分配给对象的标识符属性的标识符值。这个生成器使用一个自然键作为主键,而不是使用一个代理键。这是没有指定generator元素时的默认行为。 如果数据表的自然主键是复合键,那么在Hibernate中也要做相应的配置,就需要使用到composite-id元素, composite-id name=propertyName class=ClassName mapped=true|false access=field|property|ClassName node=element-name|. key-property name=propertyName type=typename column=column_name / key-many-to-one name=propertyName class= ClassName column=column_name / ...... /composite-id 有3种方式可以选择: (1)直接使用联合主键。如果表使用联合主键,可以映射类的多个属性为标识符属性。composite-id元素接受key-property属性映射和key-many-to-one属性映射作为子元素。 composite-id key-property name=medicareNumber / key-property name=dependent / /composite-id 持久化类必须重载equals()和 hashCode()方法,来实现组合的标识符的相等判断。 实现Serializable接口也是必须的。 在重要的应用中不鼓励使用这种用法 (2)第2种方法称为mapped(映射式)组合标识符(mapped composite identifier),composite-id元素中列出的标识属性不但在持久化类出现,还形成一个独立的标识符类。 composite-id class=MedicareId mapped=true key-property name=medicareNumber / key-property name=dependent / /composite-id 缺点是出现了明显的代码重 (3)第3种方式,被称为identifier component(标识符组件)也是对几乎所有应用都推荐使用的方式。把组合标识符实现为一个组件(component)类,这是更方便的方法。推荐使用的方式 name (可选,但对这种方法而言必须): 包含此组件标识符的组件类型的名字 . access (可选 - 默认为property): Hibernate应该使用的访问此属性值的策略 class (可选 - 默认会用反射来自动判定属性类型 ): 用来作为组合标识符的组件类的类名 Hibernate的内置类型通常使用和Java类型相同的名字,它能够把Java基本类型、Java时间和日期类型、Java大对象类型及JDK常用的Java类型映射到相应的标准SQL类型。 Java应用通过Hibernate访问数据库,而Hibernate又通过JDBC驱动程序访数据库,JDBC对底层数据库SQL类型进行封装,向上提供标准的SQL类型接口,这样Hibernate就可以根据底层数据库使用的SQL方言,把标准SQL类型翻译成底成数据库类型。 表12-1列出了Hibern

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档