Hibernate之關(guān)系映射OneToMany

ManyToOne單向

one
Many
one的hbm.xml
many的hbm.xml

測(cè)試add:


先添加為1的一方
先添加為多的一方


先添加為one的一方抛寝,再添加為many的一方度硝,共需要三條sql語句实蔽,

先添加為many的一方卷扮,再添加為one的一方荡澎,共需要五條sql語句,增加了更新語句

所以最佳實(shí)踐:一定要先添加一的一方晤锹,之后再添加多的一方

測(cè)試load:

load

load加載時(shí):關(guān)聯(lián)對(duì)象的加載也是延遲的摩幔。

測(cè)試cascade=all的用處:

add

沒有添加cascade=all的時(shí)候:拋出異常。

cascade

當(dāng)添加了cascade之后鞭铆,不會(huì)拋出異常或衡。

但是同時(shí)cascade也會(huì)造成一些問題,在刪除的時(shí)候:

delete

上述刪除會(huì)拋出異常衔彻。原因如下:

如果刪除的時(shí)候薇宠,cascade也會(huì)把關(guān)聯(lián)的對(duì)象刪除,但是對(duì)于多對(duì)一的情況來說艰额,刪除一個(gè)也會(huì)把關(guān)聯(lián)的唯一一個(gè)刪除澄港,但是又因?yàn)檫€有其他對(duì)象在關(guān)聯(lián),所以刪除不掉這個(gè)關(guān)聯(lián)對(duì)象柄沮,導(dǎo)致這個(gè)對(duì)象也刪除不掉回梧,拋出異常废岂,造成災(zāi)難。

所以沒有特殊情況狱意,不要使用cascade湖苞。

一般使用cascade的地方都是一One的地方進(jìn)行刪除時(shí)使用,特殊情況才使用cascade的add,正常情況add都是由程序員完成添加的

多Many的地方不建議使用cascade.




OneToMany單向

One:

one

Many

Many

映射文件:

One.hbm.xml
Many.HBM.XML

測(cè)試add:

add測(cè)試

load測(cè)試:

load

注意:使用lazy="extra"會(huì)稍微智能,會(huì)根據(jù)取值的不同來判斷是調(diào)用count還是投影

特別注意oneToMany在添加和維護(hù)關(guān)系的時(shí)候比較麻煩详囤,所以在開發(fā)中不建議使用oneToMany的單向财骨。




ManyToOne雙向

實(shí)體類

One
Many

映射文件:

One.hbm.xml
Many.hbm.xml

測(cè)試add

使用一的一端來維護(hù)關(guān)系:

add

結(jié)論:此處會(huì)生成五條sql語句,所以最佳實(shí)踐是藏姐,先添加一的一方隆箩,再添加多的一方,不要使用一的一方來維護(hù)關(guān)系.

實(shí)施方法:在配置文件的set中可以通過設(shè)置inverse=true來明確不使用一的這一端來維護(hù)關(guān)系

one.hbm.xml

使用inverse=true的時(shí)候會(huì)生成三條sql語句羔杨,因?yàn)椴粫?huì)應(yīng)為cr的增加而去更新student的表捌臊。

不去維護(hù)關(guān)系,自然就少了兩條sql語句,但是同時(shí)由于在一的一端來添加兜材,又inverse=true理澎,所以會(huì)造成關(guān)聯(lián)失敗。這就需要程序員自己主動(dòng)使用多的一方來維護(hù)關(guān)系曙寡。

使用多的一端來維護(hù)關(guān)系:

add

測(cè)試load:

load

因?yàn)橛嘘P(guān)聯(lián)關(guān)系的存在都可以取出來數(shù)據(jù)糠爬。



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卵皂,隨后出現(xiàn)的幾起案子秩铆,更是在濱河造成了極大的恐慌砚亭,老刑警劉巖灯变,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異捅膘,居然都是意外死亡添祸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門寻仗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃泌,“玉大人,你說我怎么就攤上這事署尤“姨妫” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵曹体,是天一觀的道長俗扇。 經(jīng)常有香客問我,道長箕别,這世上最難降的妖魔是什么铜幽? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任滞谢,我火速辦了婚禮,結(jié)果婚禮上除抛,老公的妹妹穿的比我還像新娘狮杨。我一直安慰自己,他們只是感情好到忽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布橄教。 她就那樣靜靜地躺著,像睡著了一般喘漏。 火紅的嫁衣襯著肌膚如雪颤陶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天陷遮,我揣著相機(jī)與錄音滓走,去河邊找鬼。 笑死帽馋,一個(gè)胖子當(dāng)著我的面吹牛搅方,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绽族,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼姨涡,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吧慢?” 一聲冷哼從身側(cè)響起涛漂,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎检诗,沒想到半個(gè)月后匈仗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逢慌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年悠轩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攻泼。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡火架,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忙菠,到底是詐尸還是另有隱情何鸡,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布牛欢,位于F島的核電站骡男,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏氢惋。R本人自食惡果不足惜洞翩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一稽犁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧骚亿,春花似錦已亥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馍驯。三九已至覆醇,卻和暖如春妆够,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背迎膜。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國打工泥技, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人磕仅。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓珊豹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親榕订。 傳聞我的和親對(duì)象是個(gè)殘疾皇子店茶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本文包括:1、一對(duì)多結(jié)構(gòu)的準(zhǔn)備2劫恒、雙向關(guān)聯(lián)與單向關(guān)聯(lián)3贩幻、級(jí)聯(lián)保存4、級(jí)聯(lián)刪除5两嘴、cascade 屬性——級(jí)聯(lián)6丛楚、i...
    廖少少閱讀 1,227評(píng)論 1 6
  • 這部分主要是開源Java EE框架方面的內(nèi)容,包括Hibernate溶诞、MyBatis鸯檬、Spring决侈、Spring ...
    雜貨鋪老板閱讀 1,389評(píng)論 0 2
  • 1. 簡介 1.1 什么是 MyBatis 螺垢? MyBatis 是支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,523評(píng)論 0 4
  • 長篇小說如果在網(wǎng)絡(luò)上發(fā)布赖歌,無字?jǐn)?shù)限定枉圃,可以寫成無底洞。如果要選擇出版庐冯,直接關(guān)系到出版社的投資與回報(bào)孽亲,字?jǐn)?shù)多少、印數(shù)...
    陳銥閱讀 375評(píng)論 0 2
  • 1.說說庫和框架的區(qū)別展父? 庫:是一個(gè)數(shù)據(jù)倉庫返劲,里面放了各種可以利用的API玲昧,由于庫的內(nèi)部已經(jīng)做了各種底層的封裝和各...
    clark124閱讀 156評(píng)論 0 0