麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Hibernate持久化技術中多對多關系應用

2019-11-18 12:57:53
字體:
來源:轉載
供稿:網友

Hibenate作為一種java對象持久化技術,在很多大型的多層體系構架中得到應用,比如在開發一套電子商務系統可以以J2EE作為體系構架,StrUCts作為java Web應用框架,以Hibenate實現對象持久化任務,以EJB或者普通的javabean實現業務邏輯,其實現過程的復雜度可想而知,下面收集一些在Hibenate中多對多關系中應用技巧給大家分享

 

1.cascade="..."?

 

cascade屬性并不是多對多關系一定要用的,有了它只是讓我們在插入或刪除對像時更方便一些,只要在cascade的源頭上插入或是刪除,所有cascade的關系就會被自己動的插入或是刪除。便是為了能正確的cascade,unsaved-value是個很重要的屬性。

 

Hibernate通過這個屬性來判定一個對象應該save還是update,假如這個對象的id是unsaved-value的話,那說明這個對象不是persistence object要save(insert);假如id是非unsaved-value的話,那說明這個對象是persistence object(數據庫中已存在),只要update就行了。saveOrUpdate方法用的也是這個機制。

 

2.inverse="ture"?

 

inverse屬性默認是false的,就是說關系的兩端都來維護關系。這個意思就是說,如有一個Student, Teacher和TeacherStudent表,Student和Teacher是多對多對多關系,這個關系由TeacherStudent這個表來表現。那么什么時候插入或刪除TeacherStudent表中的記錄來維護關系呢?在用hibernate時,我們不會顯示的對TeacherStudent表做操作。

 

對TeacherStudent的操作是hibernate幫我們做的。hibernate就是看hbm文件中指定的是"誰"維護關系,那個在插入或刪除"誰"時,就會處發對關系表的操作。前提是"誰"這個對象已經知道這個關系了,就是說關系另一頭的對象已經set或是add到"誰"這個對象里來了。前面說過inverse默認是false,就是關系的兩端都維護關系,對其中任一個操作都會處發對表系表的操作。當在關系的一頭,如Student中的bag或set中用了inverse="true"時,那就代表關系是由另一關維護的(Teacher)。就是說當這插入Student時,不會操作TeacherStudent表,即使Student已經知道了關系。只有當Teacher插入或刪除時才會處發對關系表的操作。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 狠狠干b | 九九热九九 | 黄色av免费电影 | 免费久久久| 性生活香蕉视频 | 国产成年人在线观看 | 色综合久久久久久 | 国产精品久久久久久影院8一贰佰 | 911色_911色sss主站色播 | 久久精品久久精品国产大片 | 黄色片免费看网站 | 国产午夜亚洲精品理论片大丰影院 | 亚洲精品欧美二区三区中文字幕 | 亚洲二区不卡 | 久久精品亚洲国产奇米99 | www.7777在线| 亚洲午夜精品视频 | fc2成人免费人成在线观看播放 | av电影在线免费 | 色淫视频 | 免费观看欧美一级片 | 午夜影视一区二区 | 538任你躁在线精品视频网站 | 黄色视屏免费观看 | 国产精品自在线拍 | 羞羞网站入口 | 91久久国产综合精品女同国语 | 久久久成人999亚洲区美女 | 91成人免费在线观看 | 国产精品成人一区二区三区电影毛片 | 国产高潮国产高潮久久久91 | 国产精品视频在 | 欧美黄色大片免费观看 | 国产91久久久久久 | 免费看日韩片 | 国产理论视频在线观看 | 黄色午夜剧场 | 5xx免费看| 国产精品av久久久久久久久久 | 一级做a爱性色毛片免费1 | 女18一级大黄毛片免费女人 |