欢迎访问成都祈钰瑶科技有限公司!

全国免费服务热线:

18982081108
✕

成都网站设计公司,成都响应式网站设计,成都移动端网站设计,成都网站UI设计

浅谈Hibernate中加载的三种类型

一: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"></key>
  4. <indexcolumnindexcolumn="listindex"></index>
  5. <one-to-manyclassone-to-manyclass="com.lovo.po.PetDiary"/>
  6. </list>
  7. <listnamelistname="diarys"table="petDiary"cascade="all"inverse="true">
  8.   <keycolumnkeycolumn="petId"></key>
  9.   <indexcolumnindexcolumn="listindex"></index>
  10.   <one-to-manyclassone-to-manyclass="com.lovo.po.PetDiary"/>
  11. </list>

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"></key>
  9. <one-to-manyclassone-to-manyclass="Order"/>
  10. </set>
  11. <setnamesetname="orders"
  12. table="t_order"
  13. cascade="all"
  14. inverse="true"
  15. lazy="true"
  16. >
  17. <keycolumnkeycolumn="fk_customer_id"></key>
  18. <one-to-manyclassone-to-manyclass="Order"/>
  19. </set>

3:map

 
 
 
  1. Java代码
  2. privateMapschool=newHashMap();
  3. publicMapgetSchool(){
  4. returnschool;
  5. }
  6. publicvoidsetSchool(Mapschool){
  7. this.school=school;
  8. }
  9. privateMapschool=newHashMap();
  10. publicMapgetSchool(){
  11. returnschool;
  12. }
  13. publicvoidsetSchool(Mapschool){
  14. this.school=school;
  15. }
 
 
 
  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. </map>
  7. privateMapschool=newHashMap();
  8. publicMapgetSchool(){
  9. returnschool;
  10. }
  11. publicvoidsetSchool(Mapschool){
  12. this.school=school;
  13. }
  14. privateMapschool=newHashMap();
  15. publicMapgetSchool(){
  16. returnschool;
  17. }
  18. publicvoidsetSchool(Mapschool){
  19. this.school=school;
  20. }
 
 
 
  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. </map>

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