双向关联与继承映射.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
采用union-subclass元素的继承映射 域模型中的每个类映射到一个表, 通过关系数据模型中的外键来描述表之间的继承关系。 相当于按照域模型的结构来建立数据库中的表,并通过外键来建立表之间的继承关系。 hibernate-mapping package=bean class name=Person table=person_inf id name=id column=person_id !-- 不能使用identity的主键生成器策略,所以使用hilo主键生成器策略-- generator class=hilo/ /id property name=name length=80/ property name=gender/ component name=address !-- 映射组件属性的三个成员属性 -- property name=detail/ property name=zip/ property name=country/ /component 映射文件person.hbm.xml !-- 使用union-subclass元素映射Person类的Employee子类 -- union-subclass name=Employee table=employee_inf property name=title not-null=true/ property name=salary not-null=true/ !-- 映射Employee类与Manager类之间的N-1关联-- many-to-one name=manager column=manager_id/ !-- 映射Employee类与Customer类之间的1-N关联-- set name=customers inverse=true key column=empoyee_id/ one-to-many class=Customer/ /set !-- 使用union-subclass元素映射Employee类的Manager子类 -- union-subclass name=Manager table=manager_inf !-- 映射Manager类的department属性 -- property name=department/ !-- 映射Employee类与Manager类之间的1-N关联-- set name=employees inverse=true key column=manager_id/ one-to-many class=Employee/ /set /union-subclass /union-subclass 映射文件person.hbm.xml 映射文件person.hbm.xml !-- 使用union-subclass元素映射Person类的Customer子类 -- union-subclass name=Customer table=customer_inf property name=comments not-null=true/ !-- 映射Employee类与Customer类之间的1-N关联-- many-to-one name=employee column=empoyee_id not-null=true/ /union-subclass /class /hibernate-mapping 运行结果 采用subclass元素的继承映射 所有继承关系生成一个表 表结构 采用joined-subclass元素的继承映射 一条记录被拆分到多个表中 采用 joined-subclass 元素的继承映射 采用 joined-subclass 元素的继承映射可以实现每个子类一张表 采用这种映射策略时,父类实例保存在父类表中,子类实例由父类表和子类表共同存储。因为子类实例也是一个特殊的父类实例,因此必然也包含了父类实例的属性。于是将子类和父类共有的属性保存在父类表中,子类增加的属性,则保存在子类表中。 在这种映射策略下,无须使用鉴别者列,但需要为每个子类使用 key 元素映射共有主键。 子类增加的属性可以添加非空约束。因为子类的属性和父类的属性没有保存在同一个表中 persons 表 students 表 THANK YOU SUCCESS * * 可编辑 可编辑 可编辑 双向关联与继承映射 Hibernate的关联映射 双向1-N关联 对于1-N关联,Hibernate推荐使用双向关联,而且不要让1的一端控制关联关系,而使用N的一端控制关联关系。 双向两端都需要增加对类关联属性的访问,N的一端增加many-to-one引用到关联实体的属性,1的一端增加集合属性set,并使用many-to-ma

文档评论(0)

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

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

1亿VIP精品文档

相关文档