双向关联与继承映射PPT学习课件.ppt_第1页
双向关联与继承映射PPT学习课件.ppt_第2页
双向关联与继承映射PPT学习课件.ppt_第3页
双向关联与继承映射PPT学习课件.ppt_第4页
双向关联与继承映射PPT学习课件.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

双向关联与继承映射,Hibernate的关联映射,双向1-N关联对于1-N关联,Hibernate推荐使用双向关联,而且不要让1的一端控制关联关系,而使用N的一端控制关联关系。双向两端都需要增加对类关联属性的访问,N的一端增加引用到关联实体的属性,1的一端增加集合属性,并使用映射关联属性。注意:inverse=“true”用于指定N的另一端不控制关联关系。,2,Person.java,publicclassPersonprivateintpersonid;privateStringname;/保留Person的age属性privateintage;/1N关联关系,使用Set来保存关联实体privateSetaddresses=newHashSet();/addresses属性的setter和getter方法publicvoidsetAddresses(Setaddresses)this.addresses=addresses;publicSetgetAddresses()returnthis.addresses;,3,Address.java,publicclassAddress/标识属性privateintaddressid;/地址详细信息privateStringaddressdetail;/保留关联实体的person属性privatePersonperson;/person属性的setter和getter方法publicvoidsetPerson(Personperson)this.person=person;publicPersongetPerson()returnthis.person;,4,Person.hbm.xml,5,Address.hbm.xml,6,PersonManager.java,privatevoidtestPerson()Personp=newPerson();p.setName(Yeeku);p.setAge(29);/持久化Person对象(对应于插入主表记录)session.save(p);Addressa=newAddress(广州天河);/先设置Person和Address之间的关联关系a.setPerson(p);/再持久化Address对象(对应于插入从表记录)session.persist(a);/创建一个瞬态的Address对象Addressa2=newAddress(上海虹口);/先设置Person和Address之间的关联关系a2.setPerson(p);/再持久化Address对象(对应于插入从表记录)session.persist(a2);mit();HibernateUtil.closeSession();,7,Hibernate的关联映射,双向N-N关联双向N-N只能使用连接表来建立两个实体之间的关联关系。两端都使用Set集合来增加对集合属性的访问。增加元素来映射关联实体类。,8,Person.java,publicclassPersonprivateintpersonid;privateStringname;privateintage;/NN关联关系,使用Set来保存关联实体privateSetaddresses=newHashSet();,9,Address.java,publicclassAddressprivateintaddressid;privateStringaddressdetail;/NN关联关系,使用Set来保存关联实体privateSetpersons=newHashSet();,10,Person.hbm.xml,11,Address.hbm.xml,12,继承映射概述,三种策略采用subclass元素的继承映射所有继承关系生成一个表采用joined-subclass元素的继承映射一条记录被拆分到多个表中采用union-subclass元素的继承映射每个实体都单独成为一个表,13,示例代码,14,4个实体,15,16,17,采用union-subclass元素的继承映射域模型中的每个类映射到一个表,通过关系数据模型中的外键来描述表之间的继承关系。相当于按照域模型的结构来建立数据库中的表,并通过外键来建立表之间的继承关系。,18,映射文件person.hbm.xml,19,映射文件person.hbm.xml,20,映射文件person.hbm.xml,21,22,23,运行结果,24,采用subclass元素的继承映射所有继承关系生成一个表,25,26,表结构,27,采用joined-subclass元素的继承映射一条记录被拆分到多个表中,28,采用joined-subclass元素的继承映射,采用joined-subclass元素的继承映射可以实现每个子类一张表采用这种映射策略时,父类实例保存在父类表中,子类实例由父类表和子类表共同存储。因为子类实例也是一个特殊的父类实例,因此必然也包含了父类实例的属性。于是将子类和父类共有的属性保存在父类表中,子类增加的属性,则保存在子类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论