三大框架hibernate深入_第1页
三大框架hibernate深入_第2页
三大框架hibernate深入_第3页
三大框架hibernate深入_第4页
三大框架hibernate深入_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

北京传智播客教育hibernate(深入)讲师:赵君北京传智播客教育

映射一对一多对多

[双向]关联关系北京传智播客教育建立一对多的双向关联关系在hibernate中通过对inverse属性的值决定是由双向关联的哪一方来维护表和表之间的关系.inverse=false的为主动方,inverse=true的为被动方,由主动方负责维护关联关系在没有设置inverse=true的情况下,父子两边都维护父子关系

在1-n关系中,将n方设为主控方将有助于性能改善(如果要国家元首记住全国人民的名字,不是太可能,但要让全国人民知道国家元首,就容易的多)在1-N关系中,若将1方设为主控方会额外多出update语句。知识点1:<set>中inverse属性(反转)北京传智播客教育映射一对一双向关联关系一对一关联指两个表之间的记录是一一对应的关系。比如一家公司(Company)和它所在的地址(Address)。在业务逻辑中要求一家公司只有唯一的地址,一个地址也只有一家公司。下图表现为外键关联关系。fk北京传智播客教育映射一对一双向关联关系对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素。为many-to-one元素增加unique=“true”

属性来表示为1-1关联,并用name属性来指定关联属性的属性名另一端需要使用one-to-one元素,该元素使用property-ref

属性指定使用被关联实体主键以外的字段作为关联字段北京传智播客教育映射一对一双向关联关系北京传智播客教育映射一对一双向关联关系北京传智播客教育映射多对多双向关联关系

多对多的实体关系模型也是很常见的,比如学生和课程的关系。一个学生可以选修多门课程,一个课程可以被多名学生选修。在关系型数据库中对于多对多关联关系的处理一般采用中间表的形式,将多对多的关系转化成两个一对多的关系。北京传智播客教育映射多对多双向关联关系北京传智播客教育映射多对多双向关联关系北京传智播客教育映射组件关系北京传智播客教育映射组件关系北京传智播客教育映射组件关系这就是组件北京传智播客教育映射组件关系Hibernate把持久化类的属性分为两种:值(value)类型:没有OID,不能被单独持久化,生命周期依赖于所属的持久化类的对象的生命周期,组件类型就是一种值类型实体(entity)类型:有OID,可以被单独持久化,有独立的生命周期Hibernate使用<component>元素来映射组成关系,该元素表明homeAddress属性是Customer类一个组成部分,在Hibernate中称之为组件北京传智播客教育映射组件关系的映射文件北京传智播客教育深入Session北京传智播客教育操纵持久化对象知识点1:图解Java对象在JVM中的生命周期北京传智播客教育操纵持久化对象概述

Session接口是

Hibernate向应用程序提供的操纵对数据库的最主要的接口,

它提供了基本的保存(save),更新(update),删除(delete)和加载(get/load)Java对象的方法.知识点2:session概述北京传智播客教育操纵持久化对象在Session接口的实现中包含一系列的Java集合,这些Java集合构成了Session缓存.只要Session实例没有结束生命周期,存放在它缓存中的对象也不会结束生命周期

当session的save()方法持久化一个对象时,该对象被载入缓存,以后即使程序中不再引用该对象,只要缓存不清空,该对象仍然处于生命周期中。知识点3:图解session的缓存北京传智播客教育操纵持久化对象Session具有一个缓存,位于缓存中的对象称为持久化对象,它和数据库中的相关记录对应.Session能够在某些时间点,按照缓存中对象的变化来执行相关的SQL语句,来同步更新数据库,这一过程被称为清理缓存(flush)默认情况下Session在以下时间点清理缓存:当应用程序调用Transaction的commit()方法的时,该方法先清理缓存,然后在向数据库提交事务。显式调用Session的flush()

方法.知识点4_1:清理session的缓存北京传智播客教育操纵持久化对象区别:

flush:

进行清理缓存(此时缓存中的数据并不丢失)的操作,让缓存和数据库同步执行一些列sql语句,但不提交事务;

commit:先调用flush()方法,然后提交事务.则意味着提交事务意味着对数据库操作永久保存下来; clear:清空缓存,等价于list.removeAll();知识点4_2:区分mit/clear三个方法北京传智播客教育操纵持久化对象知识点4_3:设置缓存的清理模式

session.setFlushMode(FlushMode.AUTO);清理缓存的模式Session的查询方法tx的commit()Session的flush()FlushMode.AUTO(默认)清理清理清理MIT不清理清理清理FlushMode.NEVER(演示)不清理不清理清理北京传智播客教育

温馨提示

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

评论

0/150

提交评论