浅谈Hibernate中加载的三种类型
创始人
2024-04-08 02:52:15
0

一:Hibernate实体对象的加载

比如说:用户和订单的关系是一对多,虽然它们有关联,但是默认是延迟加载Lazy=“true”,最终得到的是代理对象,如果要访问代理对象的属性的话,则会抛出异常,

解决方法:leftjoinfetch迫切抓取连接

selectufromUseruleftjoinfetchOrdero;

二:Hibernate普通属性

默认是:lazy=“false”

如果要改为延迟方法较麻烦

三:Hibernate集合对象

setlistmap默认Lazy=“true”

1:List

  1. Java代码  
  2. <listnamelistname="diarys"table="petDiary"cascade="all"inverse="true"> 
  3. <keycolumnkeycolumn="petId"> 
  4. <indexcolumnindexcolumn="listindex"> 
  5. <one-to-manyclassone-to-manyclass="com.lovo.po.PetDiary"/> 
  6.  
  7.  
  8. <listnamelistname="diarys"table="petDiary"cascade="all"inverse="true"> 
  9.   <keycolumnkeycolumn="petId"> 
  10.   <indexcolumnindexcolumn="listindex"> 
  11.   <one-to-manyclassone-to-manyclass="com.lovo.po.PetDiary"/> 
  12.  

2:set

  1. Java代码  
  2. <setnamesetname="orders" 
  3. table="t_order" 
  4. cascade="all" 
  5. inverse="true" 
  6. lazy="true" 
  7. > 
  8. <keycolumnkeycolumn="fk_customer_id"> 
  9. <one-to-manyclassone-to-manyclass="Order"/> 
  10.  
  11.  
  12. <setnamesetname="orders" 
  13. table="t_order" 
  14. cascade="all" 
  15. inverse="true" 
  16. lazy="true" 
  17. > 
  18. <keycolumnkeycolumn="fk_customer_id"> 
  19. <one-to-manyclassone-to-manyclass="Order"/> 
  20.  

3:map

  1. Java代码  
  2. privateMapschool=newHashMap();  
  3.  
  4. publicMapgetSchool(){  
  5. returnschool;  
  6. }  
  7. publicvoidsetSchool(Mapschool){  
  8. this.school=school;  
  9. }  
  10.  
  11. privateMapschool=newHashMap();  
  12.  
  13. publicMapgetSchool(){  
  14. returnschool;  
  15. }  
  16. publicvoidsetSchool(Mapschool){  
  17. this.school=school;  
  1. Xml代码  
  2. <mapnamemapname="school"table="schools"> 
  3. <keycolumnkeycolumn="pid"not-null="true"/> 
  4. <map-keytypemap-keytype="string"column="indet"/> 
  5. <elementtypeelementtype="float"column="score"/> 
  6.  
  7.  
  8. privateMapschool=newHashMap();  
  9.  
  10. publicMapgetSchool(){  
  11. returnschool;  
  12. }  
  13. publicvoidsetSchool(Mapschool){  
  14. this.school=school;  
  15. }  
  16.  
  17. privateMapschool=newHashMap();  
  18.  
  19. publicMapgetSchool(){  
  20. returnschool;  
  21. }  
  22. publicvoidsetSchool(Mapschool){  
  23. this.school=school;  
  1. Xml代码  
  2. <mapnamemapname="school"table="schools"> 
  3. <keycolumnkeycolumn="pid"not-null="true"/> 
  4. <map-keytypemap-keytype="string"column="indet"/> 
  5. <elementtypeelementtype="float"column="score"/> 
  6.  

key子元素用于映射外键列,而map-key子元素则用于映射Map集合的Key。

【编辑推荐】

  1. Hibernate中generator属性的意义
  2. hibernate Key Generator 主键生成方式
  3. Hibernate的主键生成机制
  4. hibernate的Query cache
  5. Hibernate中hbm的generator属性

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...