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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hibernate中Inverse和Cascade

發(fā)布時間:2024/9/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate中Inverse和Cascade 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Inverse和cascade是Hibernate映射中最難掌握的兩個屬性。兩者都在對象的關聯(lián)操作中發(fā)揮作用。 1.inverse屬性:inverse所描述的是對象之間關聯(lián)關系的維護方式。 inverse只存在于集合標記的元素中。Hibernate提供的集合元素包括<set/> <map/> <list/> <array /> <bag /> Inverse屬性的作用是:是否將對集合對象的修改反映到數(shù)據(jù)庫中。 inverse屬性的默認值為false,表示對集合對象的修改會被反映到數(shù)據(jù)庫中 inverse=”true”??表示對集合對象的修改不會被反映到數(shù)據(jù)庫中。 <one-to-many>中inverse的屬性的設置
例:Person中包含一個Child集合,Child包含一個Person對象。
要求:新建Person和Child對象,Child屬于此Person對象
分析:在數(shù)據(jù)庫中,就是新增一條Child記錄
????//one-to-many的inverse的配置 public void testInverse() {
?????? Qx qx = new Qx();
?????? qx.setQx("天山區(qū)");
?????? Jd jd = new Jd();
?????? jd.setJd("人民路");
?????? qx.getJds().add(jd);
?????? jd.setQx(qx); super.add(qx); super.add(jd);
}
配置Inverse=”false”,Hibernate的操作:
(1)Hibernate: insert into TBL_QX (qx) values (?)
(2)Hibernate: insert into TBL_JD (jd, qxid) values (?, ?)
(3)Hibernate: update TBL_JD set qxid=? where jdid=?
配置Inverse=”true”,Hibernate的操作
(1)Hibernate: insert into TBL_QX (qx) values (?)
(2)Hibernate: insert into TBL_JD (jd, qxid) values (?, ?)
可以看出:Inverse=”true”,SQL少執(zhí)行一條更新操作(Java代碼不會少) <many-to-many>中inverse的屬性的設置
在多對多的關系中,可以在關聯(lián)的兩邊都不設置inverse屬性(默認的false),那么說明關聯(lián)的雙方都可以維護兩個對象之間的關聯(lián)關系。
注:在設置多對多關系的inverse屬性時,不能兩個對象都將其設置為true 2.cascade屬性 cascade屬性的作用是描述關聯(lián)對象進行操作時的級聯(lián)特性。因此,只有涉及到關系的元素才有cascade屬性。
具有cascade屬性的標記包括<many-to-one /> <one-to-one /> <any /> <set /><bag /> <idbag /> <list /> <array />
注意:<ont-to-many />和 <many-to-many />是用在集合標記內(nèi)部的,所以是不需要cascade屬性的。
級聯(lián)操作:指當主控方執(zhí)行某項操作時,是否要對被關聯(lián)方也執(zhí)行相同的操作。 3.inverse和cascade的區(qū)別
作用的范圍不同: ????Inverse是設置在集合元素中的。 ?? Cascade對于所有涉及到關聯(lián)的元素都有效。 ?? <many-to-one/><ont-to-many/>沒有inverse屬性,但有cascade屬性
執(zhí)行的策略不同 ?? Inverse 會首先判斷集合的變化情況,然后針對變化執(zhí)行相應的處理。 ?? Cascade 是直接對集合中每個元素執(zhí)行相應的處理
執(zhí)行的時機不同 ????Inverse是在執(zhí)行SQL語句之前判斷是否要執(zhí)行該SQL語句 ????Cascade則在主控方發(fā)生操作時用來判斷是否要進行級聯(lián)操作
執(zhí)行的目標不同 ????Inverse對于<ont-to-many>和<many-to-many>處理方式不相同。
??對于<ont-to-many>,inverse所處理的是對被關聯(lián)表進行修改操作。
??對于<many-to-many>,inverse所處理的則是中間關聯(lián)表 ????Cascade不會區(qū)分這兩種關系的差別,所做的操作都是針對被關聯(lián)的對象。
總結(jié): <one-to-many>中,建議inverse=”true”,由“many”方來進行關聯(lián)關系的維護 <many-to-many>中,只設置其中一方inverse=”false”,或雙方都不設置 Cascade,通常情況下都不會使用。特別是刪除,一定要慎重

總結(jié)

以上是生活随笔為你收集整理的Hibernate中Inverse和Cascade的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品第一 | 91嫩草入口| 伦乱天堂 | 免费观看视频一区二区 | 欧美熟女一区二区 | 色吧在线观看 | 亚洲24p | 非洲黄色一级片 | 五十路六十路 | japanese国产打屁股网站 | 超碰日日夜夜 | av资源天堂 | 国产chinese | 97精品 | 精品动漫一区二区三区在线观看 | 韩日黄色 | 超碰人人干人人 | 在线观看91 | 啪啪激情网 | 99嫩草| 国产精品一区二区三区高潮 | 亚洲自拍另类 | 一级黄网站| 男女插插视频 | 亚洲黄色在线观看视频 | av福利院 | 精品一区二区久久久久久久网站 | 538精品一线 | 内射一区二区三区 | 天天免费看av | 激情高潮呻吟抽搐喷水 | 在线观看免费的av | 精品国产九九 | 春色影视| 国产精品嫩草久久久久 | 欧美国产日韩一区 | 国产视频123区 | 无码一区二区三区视频 | 亚洲爱爱网 | 女人18毛片毛片毛片毛片区二 | 黄色高清视频 | 黄色二级视频 | 超碰人人插 | 亚洲va欧美 | 国产欧美一区二区三区视频在线观看 | 奶水喷溅虐奶乳奴h文 | 天堂俺去俺来也www 欧美大片在线播放 | 日韩一级在线观看视频 | 福利姬在线播放 | 美日韩精品视频 | 欧美麻豆 | 超碰在线免费 | 亚洲精品中文字幕在线 | www.桃色av嫩草.com | 韩国黄色大片 | 91视频成人免费 | 久在线观看 | 正在播放超嫩在线播放 | 91美女视频在线观看 | 91视频网| 亚洲一区免费 | 强制憋尿play黄文尿奴 | 美妇av| 精品亚洲一区二区三区四区五区高 | 播金莲一级淫片aaaaaaa | 成熟妇人a片免费看网站 | 欧美乱妇一区二区三区 | av2014天堂 | 东京热加勒比无码少妇 | 一级黄色片毛片 | 蜜桃导航-精品导航 | 特级一级黄色片 | 自宅警备员在线观看 | 亚洲一区二区三区免费视频 | 精品久久久一区 | 榴莲视频黄色 | 国产综合免费视频 | 亚洲色欲色欲www在线观看 | 韩国三级hd中文字幕有哪些 | 久久网一区二区 | 亚洲一在线 | 国产欧美一区二区视频 | 女同hd系列中文字幕 | 久久99婷婷 | 精品在线播放 | 国产毛片欧美毛片久久久 | 男男肉耽高h彩漫 | 懂色av色吟av夜夜嗨 | av成人免费 | 久久亚州| 国产乱码精品 | av无码精品一区二区三区宅噜噜 | 中国一区二区三区 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 不卡av在线播放 | 亚洲高清在线观看 | 视频在线观看一区二区三区 | 激情拍拍| 精品人妻无码一区二区色欲产成人 |