精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hibernate的集合映射

開發 后端
本文主要針對Hibernate的Set、List、Array、Map、Bag五個集合映射進行詳細的講解。

POJOs如下:

Customer類---->customer表

Order類對應---->orders表

customer(1)<----->(n)order

  1. public class Customer  
  2. {  
  3.     private String id;  
  4.     private String username;  
  5.     private String password;  
  6.     private Timestamp registerTime;  
  7.     private int age;  
  8.     private Set<Order> orders = new HashSet<Order>();  
  9.  
  10.     /*setter and getter method*/ 
  1. public class Order  
  2. {  
  3.     private String id;  
  4.     private String orderNumber;  
  5.     private int balance;  
  6.     private Customer customer;  
  7.  
  8.     /*setter and getter method*/ 

Set集合映射:

Hibernate為集合映射提供了專用的標簽元素,Set集合映射,就使用<set>標簽表示:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  4.       
  5.     <hibernate-mapping> 
  6.         <class name="com.suxiaolei.hibernate.pojos.Customer" table="customer"> 
  7.             <!-- 主鍵設置 --> 
  8.             <id name="id" type="string"> 
  9.                 <column name="id"></column> 
  10.                 <generator class="uuid"></generator> 
  11.             </id> 
  12.               
  13.             <!-- 屬性設置 --> 
  14.             <property name="username" column="username" type="string"></property> 
  15.             <property name="password" column="password" type="string"></property> 
  16.             <property name="age" column="age" type="integer"></property> 
  17.             <property name="registerTime" column="register_time" type="timestamp"></property> 
  18.               
  19.             <set name="orders" inverse="true" cascade="all"> 
  20.                 <key column="customer_id"></key> 
  21.                 <one-to-many class="com.suxiaolei.hibernate.pojos.Order"/> 
  22.             </set> 
  23.           
  24.         </class> 
  25.     </hibernate-mapping> 

<set>標簽中的"name"屬性表示customer對象中關系集合的屬性名,"inverse"與"cascade"屬性說明(參考這里)。在數據庫中表示"一對多"的關系是通過外鍵關聯的方式實現的,"多方"通過持有"一方"的主鍵值來確定關系,怎么持有"一方"的主鍵值?"多方"將使用一列來存儲"一方"的主鍵值,然后將此列作為外鍵列參照"一方"的主鍵列。所以使用Hibernate開發時需要將兩表的關系列(外鍵列)告訴Hibernate,<key column="customer_id"></key>就是完成這個工作的,Hibernate就能根據 "customer_id"列取出關聯信息。例如:從customer表中取出一條記錄后,Hibernate會根據該customer記錄的主鍵值再從order表中查找"custom_id"列,取出值相等的記錄,然后組裝到Customer對象中的set集合屬性中,反之亦然。因為取出來的記錄(只是一些零碎的值,還沒有組裝成對象)需要存放到Set集合中,所以要告訴Hibernate在Set集合里面能放什么類型的數據。<one-to-many>這個標簽就是完成這個工作的,"class"屬性是指定這個這個Set集合里面元素的類型。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  4.       
  5.     <hibernate-mapping> 
  6.         <class name="com.suxiaolei.hibernate.pojos.Order" table="orders"> 
  7.             <id name="id" type="string"> 
  8.                 <column name="id"></column> 
  9.                 <generator class="uuid"></generator> 
  10.             </id> 
  11.               
  12.             <property name="orderNumber" column="orderNumber" type="string"></property> 
  13.             <property name="balance" column="balance" type="integer"></property> 
  14.               
  15.             <many-to-one name="customer" class="com.suxiaolei.hibernate.pojos.Customer"> 
  16.                 <column name="customer_id"></column> 
  17.             </many-to-one>          
  18.         </class> 
  19.     </hibernate-mapping> 

<many-to-one>標簽是設置"一對多"關系中的"多方"的,name指定了哪一個屬性是關系屬性,"class"指定了關系屬性的類型(也指定了與哪一個表關聯), "column"屬性是指定這個關聯屬性是按照"customer_id"列的值,在customer表中查詢獲得的。

測試:

  1. tx = session.beginTransaction();  
  2.  
  3. /*  
  4.  * 創建Customer對象,并設置其屬性值  
  5.  */ 
  6. Customer customer = new Customer();  
  7. customer.setUsername("zhangsan");  
  8. customer.setPassword("123456");  
  9. customer.setAge(22);  
  10. customer.setRegisterTime(new Timestamp(new Date().getTime()));  
  11.  
  12. /*  
  13.  * 創建Order對象order1,并設置其屬性值  
  14.  */ 
  15. Order order1 = new Order();  
  16. order1.setOrderNumber("a1a2a3");  
  17. order1.setBalance(1000);  
  18. order1.setCustomer(customer);  
  19.  
  20. /*  
  21.  * 創建Order對象order2,并設置其屬性值  
  22.  */ 
  23. Order order2 = new Order();  
  24. order2.setOrderNumber("d3d2d1");  
  25. order2.setBalance(670);  
  26. order2.setCustomer(customer);  
  27.  
  28. customer.getOrders().add(order1);  
  29. customer.getOrders().add(order2);  
  30.  
  31. session.saveOrUpdate(customer);  
  32.  
  33. tx.commit(); 

查看數據庫的數據:

customer表:

orders表 

可以看到數據被成功的插入到數據庫中了,并且"custom_id"列(關系列)也正確賦值了。

List映射:

Hibernate為集合映射提供了專用的標簽元素,List集合映射,就使用<list>標簽表示:

  1. <list name="orders" inverse="false" cascade="all"> 
  2.     <key column="customer_id"></key> 
  3.     <index column="customer_index" type="integer"></index> 
  4.     <one-to-many class="com.suxiaolei.hibernate.pojos.Order"/> 
  5. </list> 

List集合是有順序的,"index"標簽,是用于記錄順序,List的順序將表現在"customer_index"列上,其余設置,與Set集合類似。注意:List映射中"inverse"中的值不能設置為"true",因為List集合的順序只有customer方知道,order方不知道List的存在。不然,"customer_index"的列值將不會被賦值。

查看數據庫:

customer表:

orders表:

可以看到記錄正確的插入到數據庫中了,而且"custom_index"正確的表示出List的順序。

Array(數組)映射:標簽使用<array>其他與List基本一致。

Map映射:

Hibernate為集合映射提供了專用的標簽元素,Map集合映射,就使用<map>標簽表示:

  1. <map name="orders" inverse="false" cascade="all"> 
  2.     <key column="customer_id"></key> 
  3.     <index column="order_key" type="string"></index> 
  4.     <one-to-many class="com.suxiaolei.hibernate.pojos.Order"/> 
  5. </map> 

Map映射中<index>標簽,表示Map集合中的key值,記錄在"order_key"列中,<one-to-many>表示Map集合中的vlaue。其他設置與上面一樣。注意:"inverse"不要設置成"true"因為key值是customer對象維護的,而order不知道key的存在。

Bag映射:它是List與Set集合的結合,可以重復,但是無順。使用List模擬Bag。設置類似Set,它也有專用標簽<bag>。

總  結

在沒有特殊要求下,***使用Set集合,因為Set集合沒有特殊信息需要"一方"自己維護,可以完全交給"多方"維護,能夠提高性能,若需要記錄數據的順序可以使用List和Array映射,若需要key/value形式存儲數據,可以使用Map映射。***一點若集合放置的數據簡單類型(原生類型、原生類型的包裝類、String、Date之類的)在集合映射配置上稍有不同,<element>元素可以直接映射這些簡單類型,其他配置與上述配置沒什么不同。

原文鏈接:http://www.cnblogs.com/otomedaybreak/archive/2012/01/18/2325993.html

【編輯推薦】

  1. Hibernate關聯關系配置
  2. Hibernate中inverse屬性與cascade屬性
  3. Hibernate復合主鍵映射
  4. Hibernate繼承映射
  5. Hibernate事務與并發問題處理
責任編輯:林師授 來源: 音①曉的博客
相關推薦

2009-09-25 09:46:02

Hibernate高級

2009-09-23 08:56:18

Hibernate cHibernate i

2012-02-02 16:13:29

HibernateJava

2009-09-25 10:00:47

Hibernate映射

2012-02-03 10:07:04

HibernateJava

2009-09-22 15:10:22

Hibernate映射

2009-09-23 17:34:18

Hibernate映射

2012-03-19 16:27:05

JavaHibernate

2009-06-16 14:36:54

Hibernate繼承

2009-06-02 14:46:26

Hibernate關系映射教程

2009-09-29 15:58:22

Hibernate映射

2009-09-28 14:54:33

Hibernate映射

2009-09-27 10:02:29

定制Hibernate

2009-09-25 12:59:52

Hibernate映射

2009-09-25 14:20:28

Hibernate繼承映射

2009-09-25 12:31:13

Hibernate映射

2009-09-23 13:26:10

Hibernate對象

2009-09-28 09:40:28

Hibernate集合延遲加載

2012-02-08 12:17:38

HibernateJava

2009-09-23 13:21:32

Hibernate O
點贊
收藏

51CTO技術棧公眾號

亚洲国产欧美一区二区三区不卡| 97婷婷大伊香蕉精品视频| 超碰超碰在线观看| 暖暖在线中文免费日本| 91免费看视频| 91精品国产自产在线老师啪| 国产中文字字幕乱码无限| 免费欧美一区| 日韩精品一区二区三区蜜臀| 欧美日韩中文在线视频| 在线你懂的视频| 国产午夜精品一区二区三区视频| 91精品啪aⅴ在线观看国产| 日韩精品乱码久久久久久| 久久美女精品| 日韩黄色高清视频| 日本精品一区在线| 日韩天堂在线| 亚州成人在线电影| 一区二区三区一级片| 香港三日本三级少妇66| 国产精品一区二区果冻传媒| 国产精品久久久久av免费| 久久免费黄色网址| 天天做综合网| 国产一区二区精品丝袜| 亚洲调教欧美在线| 99re8这里有精品热视频8在线| 欧美日韩亚洲高清一区二区| 国产又黄又大又粗视频| 美女精品视频| 一区二区三区高清不卡| 亚洲五月六月| av影片在线看| 久久亚洲欧美国产精品乐播| 狠狠久久综合婷婷不卡| 亚洲精品视频91| 国产美女视频一区| 91精品国产自产在线老师啪| 最近中文字幕在线视频| 模特精品在线| 全球成人中文在线| 亚洲不卡1区| 亚洲一区图片| 中文字幕日韩av| 三级网站在线免费观看| 精品综合久久88少妇激情| 欧美成人精精品一区二区频| 亚洲成人av免费观看| 99er精品视频| 777久久久精品| 国产永久免费网站| 成人精品视频在线观看| 制服丝袜中文字幕一区| 亚洲一级片免费观看| 国产精品久久免费视频| 欧美一区二区观看视频| 91aaa精品| 一区二区在线免费播放| 欧美不卡视频一区| 美女伦理水蜜桃4| 99a精品视频在线观看| 亚洲成人动漫在线播放| 国产老熟女伦老熟妇露脸| 日本国产精品| 亚洲欧美日韩一区二区三区在线| 亚洲做受高潮无遮挡| 美女久久久久| 色噜噜狠狠狠综合曰曰曰| 亚洲精品一区二区三区在线播放| 久久国产亚洲| 精品中文字幕乱| 一级免费在线观看| 久久婷婷av| 国产日韩精品一区二区| www.天堂在线| 久久综合狠狠综合久久综合88| 欧美精品一区二区视频| 午夜视频在线观看网站| 一区二区三区91| 日日碰狠狠添天天爽超碰97| abab456成人免费网址| 欧美精品日韩综合在线| 亚洲自拍偷拍精品| 欧美在线色图| 色综合久综合久久综合久鬼88| 1级黄色大片儿| 秋霞午夜鲁丝一区二区老狼| 亚洲在线第一页| 天天干天天色天天| 国产精品另类一区| 国产精品www在线观看| 欧美日韩123区| 91精品国产综合久久香蕉麻豆 | 5566中文字幕| 欧美三级在线| 国产精品久久色| 精品人妻一区二区三区浪潮在线 | 国产在线免费av| 欧美日韩三级电影在线| 国产97在线观看| 亚洲va久久久噜噜噜无码久久| 久久久久久久免费视频了| 国产精品99久久久久久大便| 原纱央莉成人av片| 日韩网站在线看片你懂的| 国产成人精品无码免费看夜聊软件| 99tv成人| 国产91免费看片| 免费国产精品视频| 中文字幕在线不卡国产视频| 成熟了的熟妇毛茸茸| 国产精品高清一区二区| 亚洲欧洲激情在线| 久久精品免费av| 久久99精品久久只有精品| 欧美成人一区二区在线| 国产三线在线| 欧美一级在线视频| 中文字幕第69页| 日韩影院免费视频| 精品免费二区三区三区高中清不卡 | 美女100%一区| 亚洲精品成人免费| 国产一二三四在线| 国产麻豆一精品一av一免费| 精品一区二区三区国产| 污污的视频在线观看| 欧美三级资源在线| 中文字幕免费视频| 在线午夜精品| 国产91亚洲精品一区二区三区| 日韩子在线观看| 91成人在线精品| 黄色短视频在线观看| 激情久久久久久| 国产高清自拍99| 丝袜中文在线| 日韩欧美三级在线| 久久久久久久久久网站| 精品一区二区三区在线视频| 亚洲欧洲精品一区二区| 日本一道高清亚洲日美韩| 日韩黄色高清视频| 成人午夜淫片100集| 91社区在线播放| 日本一区二区黄色| 免费欧美激情| 国产精品网站大全| 在线看的av网站| 911精品国产一区二区在线| 国产精品麻豆一区| 国产真实乱对白精彩久久| 欧美亚洲视频一区| 日韩精品一区二区三区中文在线 | 久久国产在线视频| 成人午夜在线播放| 免费黄色日本网站| 蜜臀91精品国产高清在线观看| 日韩美女在线观看| av福利精品| 91精品国产综合久久久蜜臀粉嫩| 久久久久久视频| 成人精品亚洲人成在线| 蜜桃传媒一区二区三区| 亚洲最好看的视频| 国产精品久久久久7777婷婷| 伦xxxx在线| 欧美不卡一二三| 免费的毛片视频| 国产精品欧美一区二区三区| 国产精品igao网网址不卡| 欧美成人综合| 国产在线精品二区| 深夜成人影院| 欧美成人午夜视频| 四虎影视在线播放| 在线免费不卡电影| 神马午夜精品91| www.欧美日韩| 五月婷婷之综合激情| 欧美不卡高清| 欧美成人在线免费观看| 99精品视频在线免费播放| 久久久久久久影院| 国产中文字幕在线看| 91麻豆精品国产无毒不卡在线观看 | 亚洲五月激情网| 国产精品毛片在线| 欧洲美女和动交zoz0z| 青青草久久爱| 国产日韩欧美视频| 欧美a级在线观看| 日韩视频免费大全中文字幕| 色一情一乱一乱一区91av| 欧美色网站导航| 黄色激情视频在线观看| 中文字幕久久午夜不卡| 无码国产69精品久久久久网站| 麻豆一区二区三区| 欧美三级在线观看视频| 欧美国产偷国产精品三区| 精品国产一区二区三区四区精华 | 久久视频在线观看中文字幕| 亚洲综合伊人| 日本一区二区在线播放| 色综合999| 日韩在线欧美在线| 美女欧美视频在线观看免费| 日韩视频免费直播| 亚洲最新av网站| 欧美午夜片欧美片在线观看| 欧美片一区二区| 国产精品久久精品日日| 一卡二卡三卡四卡| av一区二区三区四区| 樱花草www在线| 免费成人在线观看视频| 国产女女做受ⅹxx高潮| 伊人激情综合| 国产人妻人伦精品| 性欧美欧美巨大69| 婷婷五月色综合| 久久99蜜桃| 欧美激情国产日韩| 极品束缚调教一区二区网站| 666精品在线| 电影中文字幕一区二区| 国产精品视频一区二区三区四| 黑人巨大精品欧美一区二区桃花岛| 久久久女女女女999久久| 在线中文免费视频| 欧美成在线观看| 性国产高清在线观看| 久久精品在线播放| 九义人在线观看完整免费版电视剧| 亚洲天堂一区二区三区| 日韩av成人| 亚洲美女免费精品视频在线观看| 天天综合网在线观看| 亚洲激情在线观看视频免费| 色呦呦视频在线| 亚洲精品wwwww| 亚洲日本中文字幕在线| 亚洲精品国产电影| 亚洲aaaaaaa| 国产婷婷成人久久av免费高清| 天堂中文资源在线| 亚洲老头同性xxxxx| 婷婷色在线视频| 精品亚洲男同gayvideo网站| 日韩私人影院| 一本大道久久加勒比香蕉| 91伦理视频在线观看| 久久久国产视频| 色呦呦在线视频| 久久久综合免费视频| 久久青草伊人| 国产99久久精品一区二区 夜夜躁日日躁| 成人勉费视频| 国产精品久久久久久久久| 成人性片免费| 亚洲综合精品伊人久久| 风间由美一区二区av101| 久久影院理伦片| 欧美3p在线观看| 一二三四中文字幕| 一区二区三区导航| 国产自偷自偷免费一区| 久久福利视频一区二区| gogo亚洲国模私拍人体| 95精品视频在线| 欧美黄色高清视频| 伊人夜夜躁av伊人久久| 久久精品一二区| 欧美日韩精品一区二区| 亚洲精品97久久中文字幕无码| 日韩高清欧美高清| 日本在线播放| 午夜精品久久久久久久99黑人| 香蕉成人av| 成人av在线观| 久久精品99国产| 精品一二三四区| 久久午夜夜伦鲁鲁片| 国产精品女同互慰在线看| 欧美日韩偷拍视频| 色偷偷久久一区二区三区| 国产精品一区二区三区在线免费观看| 精品国产一区二区三区av性色| 欧美老女人性开放| 欧美日韩xxxxx| 福利精品一区| 国产一级二级三级精品| 久久五月天小说| 国产91美女视频| 国产一区二区三区免费观看| 美女久久久久久久久久| 亚洲精品亚洲人成人网在线播放| 亚洲国产av一区二区三区| 日韩精品在线网站| 99精品老司机免费视频| 91福利视频网| 91成人噜噜噜在线播放| 亚洲国产另类久久久精品极度| 亚洲毛片av| 免费不卡av网站| 国产精品久久久久久久浪潮网站 | 99视频一区| 免费观看黄网站| 中文字幕亚洲一区二区av在线 | 久久久久久久欧美精品| 精品无码av一区二区三区| 国产精品国产a| 337p粉嫩色噜噜噜大肥臀| 精品1区2区在线观看| а√资源新版在线天堂| 国产精品久久av| 色婷婷久久久| 久草热视频在线观看| 国产成人av电影在线观看| 免费精品在线视频| 欧美性做爰猛烈叫床潮| 欧美日韩伦理片| 91成人在线播放| 开心激情综合| 国产精彩视频一区二区| 国产成人一级电影| 91插插插插插插| 69久久99精品久久久久婷婷| 天天综合视频在线观看| 国产精品国语对白| 国产欧美日韩精品一区二区免费| 欧美日韩黄色一级片| 成人久久18免费网站麻豆| 九九热这里有精品视频| 日韩欧美国产高清| 18+激情视频在线| 亚洲最大福利网站| 欧美fxxxxxx另类| 亚洲av无码久久精品色欲| 亚洲精品日日夜夜| 国产探花精品一区二区| 欧美成人合集magnet| 精品中文在线| www.国产二区| 成人黄色777网| 日韩人妻无码一区二区三区99| 亚洲第一免费播放区| 天堂av在线网| 女同一区二区| 日本在线播放一区二区三区| 亚洲精品91在线| 精品视频免费在线| 国产一二区在线| 成人动漫在线视频| 伊人成人在线视频| 丰满少妇在线观看资源站| 欧美视频二区36p| yiren22亚洲综合伊人22| 国产又爽又黄的激情精品视频 | 国产黄色片av| 欧美xxxx做受欧美.88| 99国产精品久久一区二区三区| 欧美激情 国产精品| 国产午夜精品理论片a级大结局| 亚洲视屏在线观看| 久久国产精品久久国产精品| 粉嫩久久久久久久极品| 一本久道综合色婷婷五月| 国产精品视频一二三| 草草视频在线播放| 欧美一级黑人aaaaaaa做受| 成人免费在线播放| 在线观看视频你懂得| 精品国产成人av| 91精品专区| 国产精品一区二区免费看| 久久不射网站| 国产成人综合在线视频| 亚洲第一天堂av| 成人毛片免费| 久久这里只有精品18| 国产午夜精品一区二区三区四区| 国产视频www| 欧洲亚洲妇女av| 91精品国产麻豆国产在线观看 | 波多野结衣xxxx| 亚洲一区二区三区四区在线观看 | 亚欧美在线观看| 亚洲一区二区三区激情| lutube成人福利在线观看| 官网99热精品| 久久99热国产| 亚洲精品中文字幕乱码三区91| 另类图片亚洲另类| 国产一区二区三区日韩精品| 国产精品二区视频| 欧美视频一区在线| 白浆在线视频|