日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hibernate的inverse用法

發布時間:2025/3/8 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate的inverse用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Inverse和cascade是Hibernate映射中最難掌握的兩個屬性。兩者都在對象的關聯操作中發揮作用。

1.明確inverse和cascade的作用?

inverse 決定是否把對對象中集合的改動反映到數據庫中,所以inverse只對集合起作用,也就是只對one-to-many或many-to-many有效(因 為只有這兩種關聯關系包含集合,而one-to-one和many-to-one只含有關系對方的一個引用)。
cascade決定是否把對對象的改動反映到數據庫中,所以cascade對所有的關聯關系都起作用(因為關聯關系就是指對象之間的關聯關系)。

2.inverse屬性?:inverse所描述的是對象之間關聯關系的維護方式。

inverse只存在于集合標記的元素中?。Hibernate提供的集合元素包括<set/> <map/> <list/> <array /> <bag />?
Inverse屬性的作用是:是否將對集合對象的修改反映到數據庫中。?
inverse屬性的默認值為false,表示對集合對象的修改會被反映到數據庫中;inverse=false 的為主動方,由主動方負責維護關聯關系。?
inverse=”true” 表示對集合對象的修改不會被反映到數據庫中。

?為了維持兩個實體類(表)的關系,而添加的一些屬性,該屬性可能在兩個實體類(表)或者在一個獨立的表里面,這個要看這雙方直接的對應關系了:?這里的維護指的是當主控放進行增刪改查操作時,會同時對關聯關系進行對應的更新。

???一對多:?該屬性在多的一方。應該在一方的設置 inverse=true ,多的一方設置 inverse=false(多的一方也可以不設置inverse屬性,因為默認值是false),這說明關聯關系由多的一方來維護。如果要一方維護關 系,就會使在插入或是刪除"一"方時去update"多"方的每一個與這個"一"的對象有關系的對象。而如果讓"多"方面維護關系時就不會有update 操作,因為關系就是在多方的對象中的,直指插入或是刪除多方對象就行了。顯然這樣做的話,會減少很多操作,提高了效率。
注:?
? ?? ?單向one-to-many關聯關系中,不可以設置inverse="true",因為被控方的映射文件中沒有主控方的信息。

???多對多:?屬性在獨立表中。inverse屬性的默認值為false。在多對多關聯關系中,關系的兩端 inverse不能都設為false,即默認的情況是不對的,如果都設為false,在做插入操作時會導致在關系表中插入兩次關系。也不能都設為 true,如果都設為true,任何操作都不會觸發對關系表的操作。因此在任意一方設置inverse=true,另一方inverse=false。

???一對一:?其實是一對多的一個特例,inverse 的設置也是一樣的,主要還是看關聯關系的屬性在哪一方,這一方的inverse=false。

???多對一:?也就是一對多的反過來,沒什么區別。

2.cascade屬性?
cascade屬性的作用是描述關聯對象進行操作時的級聯特性。因此,只有涉及到關系的元素才有cascade屬性。?
具 有cascade屬性的標記包括<many-to-one /> <one-to-one /> <any /> <set /><bag /> <idbag /> <list /> <array />?
注意:<ont-to-many />和 <many-to-many />是用在集合標記內部的,所以是不需要cascade屬性的。?
級聯操作:指當主控方執行某項操作時,是否要對被關聯方也執行相同的操作。

3.inverse和cascade的區別?
作用的范圍不同:?

???? Inverse是設置在集合元素中的。?
?? Cascade對于所有涉及到關聯的元素都有效。?
?? <many-to-one/><ont-to-many/>沒有inverse屬性,但有cascade屬性?
執行的策略不同?
?? Inverse 會首先判斷集合的變化情況,然后針對變化執行相應的處理。?
?? Cascade 是直接對集合中每個元素執行相應的處理?
執行的時機不同?
???? Inverse是在執行SQL語句之前判斷是否要執行該SQL語句?
???? Cascade則在主控方發生操作時用來判斷是否要進行級聯操作?
執行的目標不同?
???? Inverse對于<ont-to-many>和<many-to-many>處理方式不相同。?
?? 對于<ont-to-many>,inverse所處理的是對被關聯表進行修改操作。?
?? 對于<many-to-many>,inverse所處理的則是中間關聯表?
???? Cascade不會區分這兩種關系的差別,所做的操作都是針對被關聯的對象。

總結:?
<one-to-many>中,建議inverse=”true”,由“many”方來進行關聯關系的維護?
<many-to-many>中,只設置其中一方inverse=”false”,或雙方都不設置?
Cascade,通常情況下都不會使用。特別是刪除,一定要慎重。
操作建議?
??一般對many-to-one和many-to-many不設置級聯,這要看業務邏輯的需要;對one-to-one和one-to-many設置級聯。
??many-to-many關聯關系中,一端設置inverse=”false”,另一端設置為inverse=”true”。在one-to-many關聯關系中,設置inverse=”true”,由多端來維護關系表

轉載于:https://www.cnblogs.com/ya-qiang/p/9508736.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的hibernate的inverse用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高潮在线 | 国产熟女一区二区三区五月婷 | 日韩av免费播放 | 亚洲影院av | 天天爱天天做 | wwwwww色 | 国产成人久久精品麻豆二区 | va欧美 | 天天添天天操 | av导航在线 | 国产精品永久 | 成人久久网 | 国产真实夫妇交换视频 | 一本到久久 | 嫦娥性艳史bd | 97精品视频在线观看 | 国产网站免费在线观看 | 可以免费看的av毛片 | 韩国av电影网站 | 91性高潮久久久久久久 | 伊人视频在线观看 | 懂色av蜜臀av粉嫩av | 国产在线播放91 | 69视频一区| www.欧美 | 天天色天天干天天色 | 乖疼润滑双性初h | av在线免费观看不卡 | 日韩美女一级片 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 99久久九九| 亚洲中文字幕无码不卡电影 | 轻轻草在线视频 | 中文字幕 国产 | 91在线视频免费看 | 51av在线 | av夜夜 | 人妻少妇被猛烈进入中文字幕 | 日韩电影中文字幕 | 青草视频免费在线观看 | 澳门黄色网 | 中文字幕69页| 丁香在线| 女人高潮被爽到呻吟在线观看 | 欧美三级欧美成人高清 | 国产精品一区二区久久毛片 | 天天操天天操天天操天天 | 在线一二三区 | 99精品国产99久久久久久97 | 瑟瑟久久 | 国产视频一区二区三区四区五区 | 中国无码人妻丰满熟妇啪啪软件 | 成人毛片一区二区三区 | 欧美性猛交xxxx黑人 | 亚洲一级一区 | 国产精品永久 | 岛国午夜视频 | 香蕉人妻av久久久久天天 | 一二区在线视频 | 色乱码一区二区三区熟女 | 99热这里只有精品在线观看 | 97超碰人人爱 | 成年人在线免费观看网站 | aaaa黄色 | 黄色不打码视频 | 综合五月婷 | 天天插日日插 | 婷婷视频在线 | 亚洲第一页夜 | 97精品人妻一区二区三区 | 日本视频免费在线播放 | 午夜噜噜| 国产18禁黄网站免费观看 | 爱操av| 色婷婷av一区二区三区之e本道 | 免费成人黄色av | jizz免费在线观看 | av日韩国产 | 久久久久久久久久综合 | 毛片视频免费观看 | 美腿丝袜亚洲色图 | 国产成人自拍一区 | 亚洲国产大片 | 国产精品字幕 | 激情欧美在线 | 色综合视频网 | 日韩黄色免费观看 | 美女a视频 | 99国产热| 激情国产在线 | 日韩天天干 | 涩涩在线播放 | 青青青草视频在线 | 韩国美女视频在线观看18 | 免费毛片网站 | 欧美日韩视频在线观看免费 | 人妻互换一区二区激情偷拍 | 成人污在线观看 | 538精品一线 |