映射一对多关联关系.ppt_第1页
映射一对多关联关系.ppt_第2页
映射一对多关联关系.ppt_第3页
映射一对多关联关系.ppt_第4页
映射一对多关联关系.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、映射一对多关联关系,回顾,回顾,*.hbm.xml各个元素的作用和常用属性 hibernate的常用内置主键生成器 数据库提供的主键生成机制:identity、sequence 外部程序提供的主键生成机制:increment ,hilo 其它:native,assigned hibernate的映射类型,本章目标,理解什么是对象之间的关联关系 掌握一对多关联关系的映射 多对一单向关联 一对多(或多对一)双向关联 一对多(或多对一)双向自身关联 inverse和cascade属性设置,本章目标,什么是关联,什么是关联,关联(association) 关联指的是类之间的引用关系。如果类A与类B关联

2、,那么被引用的类B将被定义为类A的属性。 public class A private B b = new B; public A() 关联的分类:关联可以分为一对一、一对多、和多对多关联 关联是有方向的,持久化对象和临时对象概念,持久化对象和临时对象概念,临时对象是指刚通过new关键字创建的对象,在数据库中没有与此对象对应的记录 持久化对象是指数据库中有与此对象对应的记录的,多对一单向关联,多对一单向关联,我们以客户(Customer)和订单(Order)的关系为例,分析一下多(订单)对一(客户)单向关联 一个客户能发出多个订单,而一个订单只能属于一个客户 注意:我们仅仅在Order类中定义

3、了Customer类型的属性customer,因此这是一个Order类到Customer类的多对一单向关联,如何映射多对一关联关系,如何映射多对一关联关系,many-to-one元素: name属性:用来保存关联的持久对象的属性的名称 class属性:关联的持久化类的类名 cascade属性:当值为save-update表示保存或更新当前对象时(即执行insert或update语句时),会级联保存或更新与它关联的对象 元素用来指定查询关联的持久化类的外键(对于关联的持久化类而言,这个外键的值就是它的主键也就是OID), ,多对一单向关联映射,多对一单向关联映射,演示示例: Order到Cust

4、omer的多对一单向关联映射,一对多(或多对一)双向关联,一对多(或多对一)双向关联,我们以客户(Customer)和订单(Order)的关系为例,分析一下多(订单)对一(客户)单向关联 一个客户能发出多个订单,而一个订单只能属于一个客户 注意:我们不仅在在Order类中定义了Customer类型的属性customer;还在Customer类中定义了一个Set集合(用来包含关联的Order对象),,因此这是一个Order类到Customer类(或者是Customer类到Order类)的一对多(或多对一)双向关联,如何映射一对多关系,如何映射一对多关系,set、key和many-to-one元素

5、: 元素表明Customer类的orders属性为java.util.Set集合,用来包含被关联的Order对象 name属性:用来保存关联的持久化对象属性的名称(此属性的类型必须是接口,本例中必须是Set,而不能是HashSet) cascade属性:当值为save-update表示保存或更新当前对象时(即执行insert或update语句时),会级联保存或更新与它关联的对象 元素:表明Order表通过外键customerId引用Customers表 元素的class属性指定了一对多关系中多方的类名,也就是orders集合中存放的是一组什么类型的对象, ,一对多双向关联映射,一对多双向关联映

6、射,演示示例: Customer和Order的一对多双向关联映射,inverse属性,inverse属性,通过将Set元素的inverse属性设置为true,来提高应用的性别,减少不必须的JDBC操作: 这表明只有many方修改了关联关系,才会生效(也就是执行JDBC操作修改数据库内容,one方修改关联关系,不会修改数据库的内容), ,演示示例: Customer和Order的一对多双向关联映射inverse属性的作用,级联删除关联的持久化对象,级联删除关联的持久化对象,通过将Set元素的cascade属性设置为delete可以级联删除关联的持久化对象, ,演示示例:级联删除关联的持久化对象,

7、删除解除关联关系的对象,删除解除关联关系的对象,通过将Set元素的cascade属性设置为delete-orphan可以自动删除解除关联的持久化对象(many方), ,演示示例:删除解除关联关系的对象,cascade属性总结,cascade属性总结,cascade属性总的来讲就是用来控制如何操作关联的持久化对象的,它的值有如下几类 none 保存,更新或删除当前对象时,忽略其它关联的对象 save-update 保存、更新时级联保存所有的临时对象,并且级联更新关联的游离对象 delete 通过session的delete方法删除当前对象,级联删除关联的对象 all all=save-update操作+delete操作 delete-orphan 删除所有和当前对象解决关联关系的对象 all-delete-orphan all-delete-orphan=all操作+delete-orphan操作,映射一对多双向自身关联关系,映射一对多双向自身关联关系,以菜单表为例,演示一对多双向自向关联关系,演示示例:映射一对多双向自身关联关系,总结,总结,使用Hibernate,

温馨提示

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

评论

0/150

提交评论