Hibernate 要点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2007-02-05 23:10:55 大 中 小 属性 1? unsaved-value:对级联对象进行数据保存时,Hibernate将根据这个值来判断对象是否需要保存;先从级联对象中取出id,如果id和 unsave-value值相等,则认为对象尚未保存,否则认为对象已经保存(这里的保存指的是insert,而不是update) ;在隐式保存的情况下,Hibernate用目标对象的id值和此值比较,如果相等则insert,否则不insert 2? hbm.xml文件的class标签中有一个polymorphism=explicit属性,它的作用是:声明一个显式多态关系,声明为显式多态的类只有在代码中(如:list object=createQuery(from TuserProfile).list();这里显式指明了TuserProfile类)明确指定类名的时候才会返回此类实例; ? 如果要返回对应整个数据库中所有库表记录的数据对象,可用: List obj=createQuery(from object).list();但不会返回在映射文件中具有polymorphism=explicit定义的类的实例 3 inverse:用于在设置双向一对多关系时设置维护两个实体关系的一方,inverse=false的一方负责维护双方关系;在one-to-many关系中,常将many一方设为false方 4 cascade:指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。例如对主控对象调用save-update或delete方法时, 是否同时对关联对象(被动方)进行sava-update或delete;设定为all则代表无论主控方执行任何操作 (Insert/update/delete...)都对其关联类时行同样的操作 ?????????? ;根据此属性的设置对相关联的对象采取相应的操作 ?? cascade=all-delete-orphan处理方式: ?? 当保存当前对象时保存相关联的对象,相当于cascade=save-update ?? 当删除当前对象时删除相关联的对象,相当于cascade=delete ?? 当双方存在父子关系时,如果解除了子与父的关系则删除和父方解除关系的子方记录 ?(当关联双方存在父子关系时,就可以把父方的cascade设为all-delete-orphan) ?5 在property标签中的access属性说明: ?? 形式property name=name column=name access=field/property/ ? access默认为property,意思是:Hibernate不是直接访问持久化类中的name属性,而是访问setName()和getName()方法; ? access=field,意思是:Hibernate不访问setName()和getName()方法,而是直接访问持久化类中的name属性 6 hbm.xml文件的class标签中有一个polymorphism=explicit属性,它的作用是:声明一个显式多态关系,声明为显式多态的类只有在代码中(如:list object=createQuery(from TuserProfile).list();这里显式指明了TuserProfile类)明确指定类名的时候才会返回此类实例; ? 如果要返回对应整个数据库中所有库表记录的数据对象,可用: List obj=createQuery(from object).list();但不会返回在映射文件中具有polymorphism=explicit定义的类的实例 ? 方法 1? 加载数据的get和load方法区别: ?? a 如果未能发现符合条件的记录,get方法返回null,load方法抛出一个ObjectNotFoundException异常 ?? b load可以返回实体的代理类实例,get永远直接返回实体类 ??? 代理类实例: ??? 实体类: ?? c load要在内部缓存和二级缓存中搜索现有数据,get则仅在内部缓存中进行数据查找(根据id查找),如果在内部缓存中没有找到数据则直接从数据库中读取 ? ??? 内部缓存(一级缓存):其中保持了session当前所有关联实体的数据 ??? 二级缓存:存在于SessionFactory层次,由当前所有本SessionFactory构造的session实例共享 2 session.find(hql,parameterValue,Hibernate Type of parametervlaue)和session.iterator(hql,parameterValue,Hibernate type of pa

文档评论(0)

80092355km + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档