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

Hibernate配置文件.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
采用 joined-subclass 元素的继承映射 采用 union-subclass 元素的继承映射 采用 union-subclass 元素可以实现将每一个实体对象映射到一个独立的表中。 子类增加的属性可以有非空约束 --- 即父类实例的数据保存在父表中,而子类实例的数据保存在子类表中。 子类实例的数据仅保存在子类表中, 而在父类表中没有任何记录 在这种映射策略下,子类表的字段会比父类表的映射字段要多,因为子类表的字段等于父类表的字段、加子类增加属性的总和 在这种映射策略下,既不需要使用鉴别者列,也无须使用 key 元素来映射共有主键. 使用 union-subclass 映射策略是不可使用 identity 的主键生成策略, 因为同一类继承层次中所有实体类都需要使用同一个主键种子, 即多个持久化实体对应的记录的主键应该是连续的. 受此影响, 也不该使用 native 主键生成策略, 因为 native 会根据数据库来选择使用 identity 或 sequence. 采用 union-subclass 元素的继承映射 三种继承映射方式的比较 union-subclass subclass joined-subclass 练习3 * hbm2ddl.auto 四个取值的意义: create : 会根据你的model类来生成表,但是每次运行都会删除上一次的表,重新生成表,哪怕2次没有任何改变 create-drop : 根据model类生成表,但是sessionFactory一关闭,表就自动删除 update : 最常用的属性,也根据model类生成表,即使表结构改变了,表中的行仍然存在,不会删除以前的行 validate : 只会和数据库中的表进行比较,不会创建新表,但是会插入新值 * hilo 和 seqhilo生成器给出了两种hi/lo算法的实现 第一种情况: id name=id type=id column=id generator class=hilo param name=tablezhxy_hilo_tbl/param param name=columnnext_value/param param name=max_lo100/param /generator /id 第二种情况 id name=id type=long column=cat_id generator class=seqhilo param name=sequencehi_value/param param name=max_lo100/param /generator /id 第二种情况需要sequence的支持,这里只讨论更通用的第一种情况 默认请况下使用的表是 hibernate_unique_key,默认字段叫作next_hi。next_hi必须有一条记录否则会出现错误。 几个简写解释: hi:高值-从数据库取得的那个值 lo:低值-hibernate自动维护,取值1到max_low max_low:映射文件中配置的那个值 那hibernate怎样生成主键呢? 1.从数据库中取得hi值,数据库的next_value值加1 2.hibernate取得lo值(0到max_lo-1循环,lo到max_lo时,执行步骤1,然后lo继续从0到max_lo-1循环) 根据下面的公式计算值: hi*(max_lo+1)+lo; 例如hi初始为2,max_lo为3 生成的值依次是: 读取hi为2,写到数据库为3 2*(3+1)+0=8 2*(3+1)+1=9 2*(3+1)+2=10 2*(3+1)+3=11 这有次读写表zhxy_hilo_tbl操作,hi变为3,数据库成为4 3*(3+1)+0=12 3*(3+1)+1=13 关闭数据库,下次打开时,读取hi值为4,数据库变为5 4*(3+1)+0=16 但是有一种特殊情况,就是hi是0的时候,那么第一个值不是0*(max_lo+1)+0=0 而是跳过0,直接就是1 * property name=fullContent formula=(SELECT concat(TITLE, CONTENT) FROM NEWS WHERE ID=ID)/ * * 组成关系中, 整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。 映射组成关系 Hibernate 把持久化类的属性分为两种: 值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期 实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期 显然无法直接用 property 映射 na

文档评论(0)

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

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

1亿VIP精品文档

相关文档