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

深索Hibernate延遲加載技術

開發 后端
Hibernate延遲加載技術包括實體對象的延遲加載、集合類型的延遲加載、集合類型的緩存、屬性的Hibernate延遲加載、Hibernate的實現。

今天我們主要來深索Hibernate延遲加載技術,Hibernate延遲加載技術包括實體對象的延遲加載、集合類型的延遲加載等。

Hibernate延遲加載的對象:

◆hibernate 2針對實體對象和集合
◆hibernate 3同時提供了屬性的延遲加載功能。
其中對集合的延遲加載特性意義最為重大。

實體對象的Hibernate延遲加載:

在hibernate配置文件中的class指定

集合類型的Hibernate延遲加載:

在set中指定lazy=true
這樣只有實際加載與對象相關聯的集合對象的時候,再通過session從數據庫中加載實際的數據集。
Hibernate.initialize方法可以強制Hibernate立即加載關聯的對象集,例如:
Hibernate.initialize(user.getAddress());
集合類型的緩存:

如果為某個集合類設定了緩存,如

  1. <set   
  2.     name="address" 
  3.     table="t_address" 
  4.     lazy="true" 
  5.     ......  
  6. > 
  7.     <cache usage="read-only"/> 
  8.     <key column="user_id" /> 
  9.     <one-to-many class="cn.blogjava.TAddress" /> 
  10. </set> 

Hibernate對集合類型進行緩存的時候,分兩部分保存。首先是這個集合中所有實體的id列表,其次才是各個實體對象。
這里制定了cache usage="read-only"只會使得Hibernate對數據索引進行緩存。也就是說只緩存了集合中的數據索引,并不包含集合中的各個實體元素。
如果指定cache usage="read-write"才會對集合中的實體進行緩存。

屬性的Hibernate延遲加載:

在property節點中聲明lazy=true,而且還需要借助Hibernate類增強器對POJO類的二進制Class文件進行強化處理。

hibernate中的Collection
Hibernate對JDK Collention接口的獨立實現:
由于傳統的Java Set, Map, List實現不能滿足要求,Hibernate根據這些接口提供了自己的實現。

Hibernate的實現:

◆無序集:Set, Bag, Map
◆有序集:List
Bag相當于一個允許重復元素存在的Set。因為Hibernate是自己的Collection實現,所以如下語句會出錯,Set hset = (HashSet)user.getAddresses();會在運行期報告一個java.lang.ClassCastException,因為實際上返回的是一個類型為org.hibernate.collention.Set的對象。

所有我們在寫POJO時,必須用JDK Collection Interface(如Set, Map),而非特定的JDK Collection實現類(如HashSet, HashMap)聲明Collection型屬性的原因。例如:應該是private Set addresses;而不是private HashSet addresses;collection類型屬性的保存過程。

例如

  1. public class TUser implements Serializable {  
  2.  private Set addresses = new HashSet();  
  3.         ......  

然后創建一個TUser實例后,就可以為其添加關聯的address對象:

  1. TUser user = new TUser();  
  2. TAddress addr = new TAddress();  
  3. addr.setAddress("HongKong");  
  4. user.getAddress().add(addr);  
  5. session.save(user); 

user對象在經過Hibernate處理后發生了變化,首先,由于insert操作,產生了id值,并填充到user對象的id屬性,另一方面Hibernate使用了自己的collection實現對user中的HashSet型addresses屬性進行了替換,并用數據對其進行了填充。

【編輯推薦】

  1. 簡述Hibernate中加載并存儲對象
  2. Hibernate傳播性持久化攻略
  3. 深入了解Hibernate自動狀態檢測
  4. 簡單學會Hibernate對象持久化
  5. 分析Hibernate自增主鍵
責任編輯:仲衡 來源: chinaitlab
相關推薦

2009-09-24 11:41:46

Hibernate延遲

2009-06-17 11:18:02

Hibernate延遲

2009-09-28 09:56:53

Hibernate屬性

2009-09-25 10:47:25

Hibernate延遲

2009-09-28 09:40:28

Hibernate集合延遲加載

2009-09-28 09:35:10

Hibernate實現實體對象延遲加載

2011-11-24 21:03:10

ibmdw

2009-07-02 09:39:37

Hibernate延遲

2012-06-05 10:22:45

jQuery

2012-08-15 11:36:13

Hibernate

2021-05-08 09:49:07

JavaScript延遲加載

2009-06-17 14:55:26

Hibernate數據

2015-08-25 10:28:38

前端圖片延遲加載

2009-09-25 10:49:25

Hibernate加載

2023-06-29 07:48:35

異步加載JavaScript

2009-09-09 09:48:43

Linq延遲加載

2011-06-08 14:22:51

延遲加載

2021-08-01 07:58:58

Vue 加載組件

2022-12-02 08:00:00

JavaScriptAstro前端

2009-09-25 08:49:22

Hibernate集合
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99热这里只有精品8 激情毛片 | 性高湖久久久久久久久 | 国产视频在线观看一区二区三区 | 欧美xxxⅹ性欧美大片 | 国产精品片aa在线观看 | 亚州精品天堂中文字幕 | 9999久久| 国产农村一级国产农村 | 毛片在线免费 | 欧美精品一级 | 麻豆天堂 | 久久青青| 国产精品不卡一区二区三区 | 国产精品呻吟久久av凹凸 | 国产成人福利 | 成人在线中文 | 最新黄色毛片 | 久久剧场 | 国产综合精品一区二区三区 | 国产精品五月天 | 国产午夜精品一区二区三区嫩草 | 久草新视频 | 亚洲乱码一区二区三区在线观看 | 超碰在线免费av | 综合久久久久久久 | 国产一区二区三区 | 久久久久免费精品国产小说色大师 | 亚洲一区成人 | 成人三级影院 | 在线视频一区二区三区 | 欧美综合一区 | 天天色影视综合 | 精品久久久久久亚洲精品 | 欧美一级在线观看 | 国产欧美在线视频 | 91美女在线观看 | 欧美精品一区二区三区一线天视频 | 精品国产乱码久久久久久1区2区 | 在线欧美日韩 | 欧美日本一区 | 91不卡 |