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

Hibernate動態模型(Dynamic models)詳解

開發 后端
Hibernate動態模型,Hibernate支持動態模型(在運行期使用Map的Map)和象DOM4J的樹模型那樣的實體表示。使用這種方法,你不用寫持久化類,只寫映射文件就行了。

本文向大家介紹Hibernate動態模型(Dynamic models),可能好多人還不了解Hibernate動態模型(Dynamic models),沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

Hibernate動態模型(Dynamic models)

注意:以下特性在當前處于試驗階段,將來可能會有變化。

運行期的持久化實體沒有必要一定表示為像POJO類或JavaBean對象那樣的形式。Hibernate也支持動態模型(在運行期使用Map的Map)和象DOM4J的樹模型那樣的實體表示。使用這種方法,你不用寫持久化類,只寫映射文件就行了。

Hibernate默認工作在普通POJO模式。你可以使用配置選項default_entity_mode, 對特定的SessionFactory,設置一個默認的實體表示模式。 (參見表 3.3 “ Hibernate配置屬性 ”。)

下面是用Map來表示的例子。首先,在映射文件中,要聲明 entity-name來代替一個類名(或作為一種附屬)。

  1. <hibernate-mapping> 
  2.  
  3.     <class entity-name="Customer"> 
  4.  
  5.         <id name="id" 
  6.             type="long" 
  7.             column="ID"> 
  8.             <generator class="sequence"/> 
  9.         </id> 
  10.  
  11.         <property name="name" 
  12.             column="NAME" 
  13.             type="string"/> 
  14.  
  15.         <property name="address" 
  16.             column="ADDRESS" 
  17.             type="string"/> 
  18.  
  19.         <many-to-one name="organization" 
  20.             column="ORGANIZATION_ID" 
  21.             class="Organization"/> 
  22.  
  23.         <bag name="orders" 
  24.             inverse="true" 
  25.             lazy="false" 
  26.             cascade="all"> 
  27.             <key column="CUSTOMER_ID"/> 
  28.             <one-to-many class="Order"/> 
  29.         </bag> 
  30.  
  31.     </class> 
  32.       
  33. </hibernate-mapping> 

注意:雖然是用目標類名來聲明關聯的,但是關聯的目標類型除了是POJO之外,也可以 是一個動態的實體。

在使用dynamic-map為SessionFactory 設置了默認的實體模式之后,可以在運行期使用Map的 Map。

  1. Session s = openSession();  
  2. Transaction tx = s.beginTransaction();  
  3. Session s = openSession();  
  4.  
  5. // Create a customer  
  6. Map david = new HashMap();  
  7. david.put("name", "David");  
  8.  
  9. // Create an organization  
  10. Map foobar = new HashMap();  
  11. foobar.put("name", "Foobar Inc.");  
  12.  
  13. // Link both  
  14. david.put("organization", foobar);  
  15.  
  16. // Save both  
  17. s.save("Customer", david);  
  18. s.save("Organization", foobar);  
  19.  
  20. tx.commit();  
  21. s.close(); 

動態映射的好處是,變化所需要的時間少了,因為原型不需要實現實體類。然而,你無法進行 編譯期的類型檢查,并可能由此會處理很多的運行期異常。幸虧有了Hibernate映射,它使得數 據庫的schema能容易的規格化和合理化,并允許稍后在此之上添加合適的領域模型實現。

實體表示模式也能在每個Session的基礎上設置:

  1. Session dynamicSession = pojoSession.getSession(EntityMode.MAP);  
  2.  
  3. // Create a customer  
  4. Map david = new HashMap();  
  5. david.put("name", "David");  
  6. dynamicSession.save("Customer", david);  
  7. ...  
  8. dynamicSession.flush();  
  9. dynamicSession.close()  
  10. ...  
  11. // Continue on pojoSession  

請注意:用EntityMode調用getSession()是在 Session的API中,而不是SessionFactory。 這樣,新的Session共享底層的JDBC連接,事務,和其他的上下文信 息。這意味著,你不需要在第二個Session中調用 flush()和close(),同樣的,把事務和連接的處理 交給原來的工作單元。

關于XML表示能力的更多信息在XML映射中找到,這里我們就不加以介紹了。

【編輯推薦】

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

2009-09-21 17:33:50

Hibernate基礎

2009-09-24 17:24:20

Hibernate S

2009-09-24 15:53:00

Hibernate J

2009-09-27 13:57:19

Hibernate樹形

2009-06-02 14:46:26

Hibernate關系映射教程

2025-01-08 08:49:50

2009-09-22 11:27:41

模型對象Hibernate

2009-07-09 16:01:27

2009-09-27 10:28:12

Hibernate.p

2009-09-23 16:30:01

Hibernate f

2009-09-24 13:03:38

Hibernate C

2009-09-22 17:25:41

優化Hibernate

2009-12-30 10:21:36

.NET 4.0

2009-06-19 14:45:28

Hibernate S

2009-09-23 12:48:54

Hibernate I

2012-02-14 15:51:13

JavaHibernate

2024-12-31 00:08:37

C#語言dynamic?

2011-04-07 11:06:18

Hibernate

2015-04-27 09:50:45

Java Hibern連接池詳解

2023-12-06 08:23:44

代理模式設計模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久久久久久 | 欧美精品成人 | 国产精品美女久久久久久免费 | 成人精品区 | 日韩亚洲视频 | 视频二区| 亚洲国产精品成人综合久久久 | 成人亚洲精品 | 日韩理论电影在线观看 | 久久三区| 欧美综合一区二区 | 51ⅴ精品国产91久久久久久 | 欧美日韩在线观看视频 | 欧美亚洲国产日韩 | 91在线观看免费 | 欧美色综合一区二区三区 | 国产精品久久久久久久久久久久 | 毛片链接 | 亚洲va国产日韩欧美精品色婷婷 | 欧美激情在线精品一区二区三区 | 天天射网站 | 97精品超碰一区二区三区 | 欧美激情久久久 | 日韩精品在线免费观看视频 | 天天干天天爱天天操 | 国产人成精品一区二区三 | 免费亚洲一区二区 | 亚洲 欧美 在线 一区 | 欧美激情亚洲天堂 | 久草欧美 | 欧美中文在线 | 欧美一区2区三区3区公司 | 色婷婷精品久久二区二区蜜臂av | 日日日日日日bbbbb视频 | 免费在线性爱视频 | 亚洲高清在线 | 欧美日韩中 | 91视频一88av | 欧美日韩成人 | 国产成人在线一区 | 国产成人免费视频网站高清观看视频 |