国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Hibernate的Orders OrderItem類

開發(fā) 后端
這里介紹Hibernate的Orders OrderItem類,我們需要同時檢查Order OrderItem。就如前面所提到的,我們添加一項Product到一個Order中,它將變成一個Order OrderItem在內(nèi)部保存一個OrderItem集。

Hibernate還是比較常用的,于是我研究了一下Orders OrderItem,在這里拿出來和大家分享一下,希望對大家有用。

Orders OrderItem

有時一個一個地操縱對象確實可行,但是我們希望能夠級聯(lián)加載和更新。現(xiàn)在我們來看如何做到這一點。

我們需要同時檢查Order OrderItem。就如前面所提到的,我們添加一項Product到一個Order中,它將變成一個Order OrderItem在內(nèi)部保存一個OrderItem集。我們希望保存Order,讓Hibernate來做其他工作:保存OrderItem和更新所添加的Product的可用庫存(數(shù)量)。聽起來很復(fù)雜,但實際上非常簡單。Hibernate知道如何處理一對一、一對多、多對一和多對多方式中的相關(guān)對象。我們將從映射文件開始。

Order.hbm.xml

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    > 
  3. <hibernate-mapping> 
  4. <class name="test.hibernate.Order" table="orders"> 
  5. <id name="id" type="string" unsaved-value="null" > 
  6. <column name="id" sql-type="char(32)" not-null="true"/> 
  7. <generator class="uuid.hex"/> 
  8. </id> 
  9. <property name="date"> 
  10. <column name="order_date"sql-type="datetime" not-null="true"/> 
  11. </property> 
  12. <property name="priceTotal"> 
  13. <column name="price_total"sql-type="double" not-null="true"/> 
  14. </property> 
  15.    
  16. <set name="orderItems" table="order_items" inverse="true"cascade="all"> 
  17. <key column="order_id" /> 
  18. <one-to-many class="test.hibernate.OrderItem" /> 
  19. </set> 
  20.    
  21. </class> 
  22. </hibernate-mapping> 

這個映射文件非常易于理解,除了最后一個元素<set>。它表示了不同類之間的連接,在我們的例子中,這些類是Order和 OrderItem。屬性和子元素很容易理解:一個Set類型的字段,名為orderItems(參見上面的Order源代碼),它包含類型為test.hibernate.OrderItem的對象,正如<one-to-many>子元素所解釋的那樣。這些對象被持久化在表order_items中,order_id列包含OrderItem類型的對象的鍵。

 cascade="all"是一個非常重要的屬性。它解釋了在操縱連接到的對象時,Hibernate如何動作。在我們的例子中,當(dāng)創(chuàng)建一個Order時,我們無疑希望它所有的OrderItem也被創(chuàng)建;當(dāng)然,當(dāng)一個Order被刪除時,我們也希望它所有的OrderItem也被刪除。Cascade屬性還有另外三個選項(none、save-update和delete),我們將在下面的示例中看一下如何使用它們。

這個對象比較有意思。它的實例自動在Order中創(chuàng)建,基本上不會存在于其外。然而,由于它們在創(chuàng)建Order時代表Product,所以我們需要它們。如果一項產(chǎn)品的價格改變了,我們無疑不希望所有相關(guān)的OrderItem以及Order的價格被改變。我們需要的只是在OrderItem創(chuàng)建時更新Product的可用庫存。最后,當(dāng)一項Order被刪除時,其OrderItem也被刪除,但我們不能改變Product!聽上去很復(fù)雜,特別是要編寫所有這些SQL語句的話。但Hibernate把它們壓縮成了映射文件中的兩行!

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    > 
  3.  
  4. <hibernate-mapping> 
  5. <class name="test.hibernate.OrderItem"table="order_items"> 
  6. <id name="id" type="string" unsaved-value="null" > 
  7. <column name="id" sql-type="char(32)"not-null="true"/> 
  8. <generator class="uuid.hex"/> 
  9. </id> 
  10. <property name="orderId" insert="false"update="false"> 
  11. <column name="order_id" sql-type="char(32)"not-null="true"/> 
  12. </property> 
  13. <property name="productId" insert="false"update="false"> 
  14. <column name="product_id" sql-type="char(32)"not-null="true"/> 
  15. </property> 
  16. <property name="amount"> 
  17. <column name="amount" sql-type="int"not-null="true"/> 
  18. </property> 
  19. <property name="price"> 
  20. <column name="price" sql-type="double"not-null="true"/> 
  21. </property> 
  22. <many-to-one name="order"class="test.hibernate.Order"column="order_id" /> 
  23. <many-to-one name="product"class="test.hibernate.
    Product"
    cascade="save-update"column="product_id"/> 
  24. </class> 
  25. </hibernate-mapping> 

到目前為止,我們了解了關(guān)于<id>和<property>元素的一切,但<many-to-one>是一個新元素。這個元素非常簡單。第一個<many-to-one>元素指出OrderItem的名為order的字段是test.hibernate.Order 類型,并且通過表order_items的order_id列來引用(參見class元素的table屬性)。第二個many-to-one元素類似于第一個,除了它具有cascade="save-update"屬性。它在定義的內(nèi)容之前進行解釋。在這個例子中,我們假設(shè)Hibernate只在保存(創(chuàng)建)或更新(更改)OrderItem時傳遞Product的更改,而在刪除時不傳遞更改。因此,上述的復(fù)雜SQL語句就被壓縮為單個屬性!現(xiàn)在這個問題解決了!

【編輯推薦】

  1. Hibernate對數(shù)據(jù)索引進行緩存
  2. 剖析Hibernate主鍵生成幾種常用方式
  3. 淺析Hibernate實現(xiàn)實體對象延遲加載
  4. Hibernate集合類型的延遲加載特性
  5. 概括Hibernate屬性延遲加載
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-09-28 15:47:59

Hibernate O

2009-09-22 09:13:43

Hibernate D

2009-09-24 13:17:37

Hibernate類庫

2009-09-25 17:19:28

Hibernate持久

2009-09-29 16:46:01

創(chuàng)建Hibernate

2009-09-27 09:55:38

Hibernate持久

2009-06-18 11:43:40

Hibernate uHibernate s

2009-07-02 09:26:17

操作Hibernate

2009-07-02 09:40:14

Hibernate的繼

2012-02-03 11:17:33

HibernateJava

2009-09-25 09:04:27

Hibernate類型

2009-06-06 15:37:22

Hibernate性能

2009-06-26 10:01:00

Hibernate的查

2012-02-03 11:31:33

HibernateJava

2009-06-26 10:06:00

游離狀態(tài)Hibernate

2012-02-08 14:24:35

HibernateJava

2009-09-24 10:13:05

Hibernate版本

2009-09-24 14:04:25

Hibernate i

2009-07-02 09:34:05

hibernate的l

2009-06-19 18:10:38

Hibernate
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲欧美日本伦理| 成人免费91在线看| 国产v综合v亚洲欧| 欧美激情一区二区三区不卡| 国产精品欧美经典| 欧美一区二区女人| 欧美成aaa人片免费看| 国产成人一区三区| 神马午夜伦理影院| 中文字幕在线资源| 欧美午夜免费| 黄色三级电影网| 日韩三级电影视频| 国产精品老牛| 色又黄又爽网站www久久| 97超级碰碰人国产在线观看| 亚洲视频小说| 成年人黄视频在线观看| 久久99久久久久| 在线91免费看| 含羞草久久爱69一区| 午夜免费视频在线国产| 欧美freesex交免费视频| 五月婷婷综合激情| 欧美日韩中文字幕综合视频| 高清欧美性猛交| 在线观看亚洲视频啊啊啊啊| 国产黄在线看| 亚洲香蕉av| 欧美色另类天堂2015| 宅男av一区二区三区| 婷婷六月综合| 色天天综合久久久久综合片| 91精品美女在线| 在线观看免费毛片| 午夜国产精品视频| 久久999免费视频| 黄色网址入口| 国产一区在线电影| 成人激情小说乱人伦| 欧美中文字幕一区二区三区| 俄罗斯精品一区二区三区| 成人性生交大片免费看96| 一区二区三区四区在线播放 | 中文字幕一区二区三区在线播放| 这里只有精品视频| 伊人情人网综合| 免费欧美视频| 亚洲午夜久久久久| 日韩免费观看在线观看| 国产乱子视频| 六月丁香婷婷久久| 国产福利视频一区二区三区| 日韩av在线网站| 精品一区二区不卡| 国产成人精品福利| 日韩一区二区电影| 成人xxxxx| 成人av在线播放| 欧美一区二区三区白人| 成视频年人免费看黄网站| 国产视频在线一区二区| 日韩电影中文 亚洲精品乱码| 在线黄色免费观看| 波多野结衣亚洲一二三| 免费看日韩精品| 欧美va亚洲va香蕉在线| 日本天堂在线| 中文字幕欧美区| 69久久夜色精品国产69| 小h片在线观看| 国产在线乱码一区二区三区| 亚洲国产高潮在线观看| 欧美一区国产一区| 羞羞视频在线观看不卡| 欧美性猛交xxxx乱大交| 久久撸在线视频| 国产69精品一区二区亚洲孕妇| 成人欧美一区二区三区视频xxx| 欧美调教在线| 亚洲一区欧美一区| 凹凸日日摸日日碰夜夜爽1| 国产成年精品| 亚洲精品有码在线| 小h片在线观看| 精品欧美乱码久久久久久 | 色噜噜久久综合伊人一本| 大片在线观看网站免费收看| 亚洲乱码免费伦视频| 777国产偷窥盗摄精品视频| 91欧美日韩在线| 日韩一区二区久久久| 热久久精品免费视频| 国产在线观看www| 成人黄色国产精品网站大全在线免费观看| 欧美一区二区三区成人久久片| 在线日本高清免费不卡| 国产精品久久久久免费| 1区2区在线观看| 久久人人超碰精品| 成人免费在线网址| 自拍偷拍欧美专区| 久久免费视频1| 日韩av电影天堂| 2018日韩中文字幕| 欧美黑人猛交| 国产精品伦一区二区三级视频| 99热在线免费观看| 亚洲欧美日韩在线不卡| 亚洲一二三区在线| 成人美女在线观看| 国产精品久久久久秋霞鲁丝| 日本久久综合| 在线观看亚洲区| 国产在线视频你懂得| 欧美日本一区二区三区四区 | 97成人超碰免| 日韩国产大片| 色嗨嗨av一区二区三区| 国产永久av在线| 欧洲激情一区二区| 天堂电影在线| 亚洲三级性片| 国产成人avxxxxx在线看 | 成人台湾亚洲精品一区二区 | 亚洲精品小视频在线观看| 黄视频网站在线| 最新亚洲视频| 欧美在线视频一区二区三区| 亚洲第一久久影院| 久久亚州av| 国产成人精品免费久久久久| 97aⅴ精品视频一二三区| 怡红院在线观看| 伊人精品在线观看| 蜜桃视频网站在线观看| 日韩欧美精品| 欧美亚洲视频在线看网址| 高清久久一区| 久久国产精品网站| 国产精品电影| 日韩亚洲精品视频| 成人av二区| 亚洲午夜私人影院| 国产三级三级看三级| 国产日韩欧美综合在线| 日韩在线观看免费网站 | 九七影院97影院理论片久久| 日本一区二区三区国色天香 | 中文字幕av一区 二区| 亚洲激情文学| 一本色道精品久久一区二区三区| 亚洲男人的天堂在线播放| 色琪琪免费视频网站| 日韩欧美综合在线| 自由日本语热亚洲人| 国产精品普通话| av在线一区二区三区| 波多野结衣一区二区三区在线观看| 精品国产18久久久久久洗澡| 成人伊人精品色xxxx视频| heyzo一本久久综合| 黄色毛片在线观看| 97激碰免费视频| 国产成人精品网址| av免费在线观| 999在线免费观看视频| 一区二区三区在线观看欧美 | 亚洲精品色婷婷福利天堂| 国产一区二区三区四区五区传媒 | 蜜桃视频网站在线| 久久大片网站| 精品视频1区2区| 久久精品九九| 99国产超薄丝袜足j在线观看| 成人黄色a**站在线观看| 国产在线更新| 亚洲综合中文字幕在线观看| 欧美激情精品久久久六区热门| 92看片淫黄大片欧美看国产片| 亚洲欧洲成人自拍| 国产三级精品三级在线观看国产| 欧美亚洲日本在线观看| 久久91亚洲精品中文字幕| 99热99精品| 只有精品亚洲| 91久久久在线| 国产一区二区精品久久91| 欧洲中文在线| 六月婷婷激情网| 国产精品成人免费在线| 少妇精品久久久| 草久在线视频| 亚洲国产天堂网精品网站| 狠狠色狠狠色综合| 捆绑调教日本一区二区三区| 免费在线观看91| 91免费看`日韩一区二区| 免费观看中文字幕| 亚洲加勒比久久88色综合|