成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate的lazy屬性總結

開發(fā) 后端
本文對Hibernate的lazy屬性做了一些總結。在session 的周期內(nèi),無論hibernate的lazy屬性設為true or false, 不會有任何限制。

一對多情況下讀取父類的子集合時,hibernate的lazy屬性在其中的影響進行總結。(以下代碼運行在jdk1.5,jboss eclipse ide 1.5,hibernate 3.1環(huán)境下)

假設有:父類 Person   (含有Set類型屬性Address),子類 Address(碰巧集合的名字和子類的名字都是Address,不要混淆了)Person.hbm.xml   主要片段:

  1. < id name="idx"  column="idx"  type="long"> 
  2.  
  3.  < generator class="identity"/> 
  4. < /id> 
  5.  
  6. < property  name="age"  type="int" update="true" insert="true"column="age"/> 
  7. < property  name="name"  type="java.lang.String" update="true"insert="true"  
  8. column="name"/> 
  9.  
  10. < set name="address" table="address"  lazy="true"  cascade="none"  sort="unsorted"> 
  11. < key > 
  12. < column name="personidx"/> 
  13. < /key> 
  14. < one-to-many class="com.abc.common.pojo.Address"/> 
  15.  
  16. < /set> 

在session 的周期內(nèi),無論hibernate的lazy屬性設為true or false, 不會有任何限制。訪問父子數(shù)據(jù)的代碼如下所示 :      

  1.   //打開session    
  2.   session = HibernateUtil.currentSession();  
  3.  
  4.   PersonDAO dao = new PersonDAO();  
  5.   Person person = null;  
  6.  
  7.   person = (Person)dao.findByPrimaryKey(4);  
  8.   Set addressSet = person.getAddress();  
  9.  
  10.  Address[] addressAry = new Address[addressSet.size()];  
  11.  Address address = null ;  
  12.  addressSet.toArray(addressAry);  
  13.  
  14.  for(int i=0 ;i< addressAry.length;i++){  
  15.                  ................        
  16.   }  
  17. //session關閉  
  18.  session.close();  
  19.   if (session.isOpen()){  
  20.        HibernateUtil.closeSession();  
  21.  }  

(2)在session的周期外,訪問父子數(shù)據(jù)的代碼如下所示 :

  1.  //打開session    
  2.  session = HibernateUtil.currentSession();  
  3.  
  4.  PersonDAO dao = new PersonDAO();  
  5.  Person person = null;  
  6.  
  7.  person = (Person)dao.findByPrimaryKey(4);  
  8.  
  9.  session.close();  
  10.  
  11.  //session關閉之后才訪問person的子集  
  12.  Set addressSet = person.getAddress();  
  13.  
  14. Address[] addressAry = new Address[addressSet.size()];  
  15. Address address = null ;  
  16. addressSet.toArray(addressAry);  
  17.  
  18. for(int i=0 ;i< addressAry.length;i++){  
  19.                 ................        
  20.  }  
  21.  if (session.isOpen()){  
  22.       HibernateUtil.closeSession();  
  23. }  

此時,上述代碼的運行結果根據(jù)hibernate的lazy屬性的設置的不同而不同

lazy=false

結果:可以訪問得到Person和Address的數(shù)據(jù)

lazy= true

根據(jù)代碼的寫法有不同

 (1)代碼其他處不做任何處理,則拋出異常

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:

 (2)如果做一些處理如下,將上述那段代碼中的"留待后續(xù)處理"換成以下代碼

Hibernate.initialize(person.getAddress());   則可以訪問得到Person和Address的數(shù)據(jù)

實際編寫時,不會象上述這樣的寫法,即將

Hibernate.initialize(person.getAddress());和person.getAddress()在同一個方法里面調(diào)用。他們往往出現(xiàn)在應用程序的不同層次中(前者出現(xiàn)在DAO層居多,而后者則出現(xiàn)在web層居多).

【編輯推薦】

  1. Hibernate中hbm的generator子元素
  2. 簡單理解Hibernate三種狀態(tài)的概念及互相轉(zhuǎn)化
  3. 操作Hibernate類:增加,刪除,修改及查詢
  4. 對于選擇Hibernate還是iBatis的看法
  5. Hibernate緩存分類,范圍及管理配置
責任編輯:book05 來源: 百度博客
相關推薦

2009-06-18 11:25:26

Hibernate L

2009-07-02 09:38:17

Hibernate延時

2009-06-24 07:59:49

Hibernate方言

2009-06-29 08:58:06

Hibernate的g

2009-09-23 13:33:51

Hibernate屬性

2009-09-29 17:00:08

Hibernate c

2009-06-29 08:59:05

hbm的generat

2009-09-29 16:25:29

Hibernate c

2012-02-03 10:21:47

HibernateJava

2009-09-25 13:39:40

Hibernate屬性

2009-09-28 09:56:53

Hibernate屬性

2009-09-29 16:32:11

OJB Hiberna

2009-09-25 17:26:55

使用Hibernate

2009-09-27 14:53:38

Hibernate S

2011-04-07 11:06:18

Hibernate

2009-09-23 17:52:16

Hibernate概念Hibernate常見

2023-09-14 08:16:50

Lazy注解null

2009-09-25 16:55:08

Hibernate初始

2009-06-18 11:43:40

Hibernate uHibernate s

2010-02-26 15:22:55

.NET Framew
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美电影免费观看 | 三级在线视频 | 欧美在线免费 | 国产成人精品网站 | 欧美国产91| 天天色综 | 成人国产精品久久 | 日韩欧美中文 | 正在播放国产精品 | 成人欧美一区二区 | 九色 在线 | 亚洲精品久久久一区二区三区 | 日韩美av | 欧美中文一区 | 亚洲国产精品久久 | 自拍视频网 | 国产精品久久久久久久久久久久冷 | 久久91精品 | 国产成人jvid在线播放 | 日韩欧美一区二区三区免费观看 | 日韩不卡视频在线 | 久久中文网 | 午夜免费网站 | 久久网日本| 亚洲高清一区二区三区 | 国产精品久久久久久久久久久久久 | 久久午夜国产精品www忘忧草 | av黄在线观看 | 国产精品视屏 | 欧美一级在线免费 | 日韩欧美成人精品 | 欧美午夜精品久久久久免费视 | 国产精品免费视频一区 | 一区二区三区高清 | 亚洲小视频在线播放 | 国产激情在线观看 | 久久久精品黄色 | 亚洲免费视频播放 | 成av在线 | 另类 综合 日韩 欧美 亚洲 | 亚洲色在线视频 |