淺談Hibernate中加載的三種類型
一:Hibernate實(shí)體對象的加載
比如說:用戶和訂單的關(guān)系是一對多,雖然它們有關(guān)聯(lián),但是默認(rèn)是延遲加載Lazy=“true”,最終得到的是代理對象,如果要訪問代理對象的屬性的話,則會拋出異常,
解決方法:leftjoinfetch迫切抓取連接
selectufromUseruleftjoinfetchOrdero;
二:Hibernate普通屬性
默認(rèn)是:lazy=“false”
如果要改為延遲方法較麻煩
三:Hibernate集合對象
setlistmap默認(rèn)Lazy=“true”
1:List
- Java代碼
- <listnamelistname="diarys"table="petDiary"cascade="all"inverse="true">
- <keycolumnkeycolumn="petId"></key>
- <indexcolumnindexcolumn="listindex"></index>
- <one-to-manyclassone-to-manyclass="com.lovo.po.PetDiary"/>
- </list>
- <listnamelistname="diarys"table="petDiary"cascade="all"inverse="true">
- <keycolumnkeycolumn="petId"></key>
- <indexcolumnindexcolumn="listindex"></index>
- <one-to-manyclassone-to-manyclass="com.lovo.po.PetDiary"/>
- </list>
2:set
- Java代碼
- <setnamesetname="orders"
- table="t_order"
- cascade="all"
- inverse="true"
- lazy="true"
- >
- <keycolumnkeycolumn="fk_customer_id"></key>
- <one-to-manyclassone-to-manyclass="Order"/>
- </set>
- <setnamesetname="orders"
- table="t_order"
- cascade="all"
- inverse="true"
- lazy="true"
- >
- <keycolumnkeycolumn="fk_customer_id"></key>
- <one-to-manyclassone-to-manyclass="Order"/>
- </set>
3:map
- Java代碼
- privateMapschool=newHashMap();
- publicMapgetSchool(){
- returnschool;
- }
- publicvoidsetSchool(Mapschool){
- this.school=school;
- }
- privateMapschool=newHashMap();
- publicMapgetSchool(){
- returnschool;
- }
- publicvoidsetSchool(Mapschool){
- this.school=school;
- }
- Xml代碼
- <mapnamemapname="school"table="schools">
- <keycolumnkeycolumn="pid"not-null="true"/>
- <map-keytypemap-keytype="string"column="indet"/>
- <elementtypeelementtype="float"column="score"/>
- </map>
- privateMapschool=newHashMap();
- publicMapgetSchool(){
- returnschool;
- }
- publicvoidsetSchool(Mapschool){
- this.school=school;
- }
- privateMapschool=newHashMap();
- publicMapgetSchool(){
- returnschool;
- }
- publicvoidsetSchool(Mapschool){
- this.school=school;
- }
- Xml代碼
- <mapnamemapname="school"table="schools">
- <keycolumnkeycolumn="pid"not-null="true"/>
- <map-keytypemap-keytype="string"column="indet"/>
- <elementtypeelementtype="float"column="score"/>
- </map>
key子元素用于映射外鍵列,而map-key子元素則用于映射Map集合的Key。
【編輯推薦】