Spring Data JPA中常見的關(guān)系映射之一對(duì)多關(guān)系

今天晚上出去玩了~慨飘!啊啊啊啊

今天由于時(shí)間的關(guān)系自赔,我們就簡單的介紹下Spring Data JPA中常見的關(guān)系映射~赢底!
首先我們先建立一個(gè)實(shí)體類Book類,然后在這個(gè)Book里面添加id后控,name庙曙,category變量,并生成他們的get和set方法浩淘。



由于一本書可以屬于多個(gè)門類捌朴,所以category對(duì)應(yīng)book的話應(yīng)該是ManyToOne的關(guān)系所以我們?cè)谧兞縞ategory前加個(gè)ManyToOne這個(gè)注解,來說明book和category的關(guān)系。



然后我們來運(yùn)行一下程序在看看數(shù)據(jù)庫张抄!

然后我們可以看見數(shù)據(jù)庫中book實(shí)體類所對(duì)應(yīng)的邊xhysc_book里面生成了一個(gè)xhysc_category_xhysc_id這個(gè)外鍵砂蔽。

然后我們?cè)倏纯碿ategory實(shí)體類所對(duì)應(yīng)的邊xhysc_category中并沒有生成外鍵,所以這就證明這是一個(gè)單行連接署惯,也就是我們可以根據(jù)book查詢到它所對(duì)應(yīng)的category左驾,而無法在category中找到category所以關(guān)聯(lián)的book!



接下來我們來實(shí)現(xiàn)ManyToOne中的雙向關(guān)系极谊!
很簡單诡右,我們只需要在category實(shí)體類中說明一個(gè)類型為book的List集合,然后為它添加注解@OneToMany轻猖,因?yàn)閎ook對(duì)應(yīng)category為ManyToOne帆吻,所以category對(duì)應(yīng)book應(yīng)該為OneToMany!

然后我們運(yùn)行程序咙边,查看我們數(shù)據(jù)庫猜煮,發(fā)現(xiàn)數(shù)據(jù)庫多出了一張表,表名為xhysc_xhysc_category_xhysc_book败许,里面有兩個(gè)字段分別為xhysc_category_xhysc_id和xhysc_books_xhysc_id王带,其實(shí)是因?yàn)槌绦蜃詣?dòng)新建了一張表把book實(shí)體類和category實(shí)體類所對(duì)應(yīng)的數(shù)據(jù)庫邊的主鍵id關(guān)聯(lián)了起來!

但是這貌似并不是我們想要的結(jié)果市殷,這因?yàn)槲覀儍蓚€(gè)實(shí)體類都說明了映射關(guān)系愕撰,他們就各自維護(hù)了自己的關(guān)系。所以我們要在Category實(shí)體類中books變量的注解后面加上@OneToMany(mappedBy = "category"),意思就是我們的關(guān)系維護(hù)不再有我們的單方Category實(shí)體類來維護(hù)盟戏,而是由我們的多方Book實(shí)體類來維護(hù)绪妹!

然后我們?cè)谶\(yùn)行程序甥桂,查看我們的數(shù)據(jù)庫柿究!

最終我們看到了我們想要的結(jié)果,就是book實(shí)體類對(duì)應(yīng)的數(shù)據(jù)庫邊生成了category實(shí)體類表的外鍵黄选,實(shí)現(xiàn)了一本書對(duì)應(yīng)一個(gè)門類蝇摸,但是一個(gè)門類卻可以對(duì)應(yīng)多本書這個(gè)需求。
最后附件一個(gè)小實(shí)踐办陷,就我們對(duì)應(yīng)多方的實(shí)體類注解@ManyToOne后可以添加一些控制貌夕!

fetch是控制我們?cè)诓樵僢ook類的時(shí)候時(shí)候把當(dāng)前book類下的category也查詢出來,其中這里有兩個(gè)策略民镜,一個(gè)是EAGER也就是馬上加載啡专,一個(gè)是LAZY也就是不加載的方式。而默認(rèn)的方式是為EAGER制圈!



optional是表示我們的外鍵是否可以為空们童,默認(rèn)的選項(xiàng)是true的,在沒有聲明optional下鲸鹦,我們的書是可以不屬于任何一個(gè)門類的慧库。

而在我們OneToMany這方也有幾個(gè)屬性可以選擇的!例如cascade =CascadeType.REMOVE表示的就是當(dāng)我們刪除這個(gè)門類的時(shí)候馋嗜,它時(shí)候也會(huì)把book中剩余這個(gè)門類的信息刪除齐板!
orphanRemoval = true表示當(dāng)我們操作集合的時(shí)候使用集合中的removed方法removed一個(gè)元素的時(shí)候是否同步數(shù)據(jù)庫把數(shù)據(jù)庫中的信息也刪除了!
targetEntity是操作泛型的由于用得比較少葛菇,這里就不一一解析了啦甘磨!
今天就講到這里啦~~~!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末眯停,一起剝皮案震驚了整個(gè)濱河市宽档,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庵朝,老刑警劉巖吗冤,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異九府,居然都是意外死亡椎瘟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門侄旬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肺蔚,“玉大人,你說我怎么就攤上這事儡羔⌒颍” “怎么了璧诵?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仇冯。 經(jīng)常有香客問我之宿,道長,這世上最難降的妖魔是什么苛坚? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任比被,我火速辦了婚禮,結(jié)果婚禮上泼舱,老公的妹妹穿的比我還像新娘等缀。我一直安慰自己,他們只是感情好娇昙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布尺迂。 她就那樣靜靜地躺著,像睡著了一般冒掌。 火紅的嫁衣襯著肌膚如雪噪裕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天宋渔,我揣著相機(jī)與錄音州疾,去河邊找鬼。 笑死皇拣,一個(gè)胖子當(dāng)著我的面吹牛严蓖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氧急,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼颗胡,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了吩坝?” 一聲冷哼從身側(cè)響起毒姨,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钉寝,沒想到半個(gè)月后弧呐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嵌纲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年俘枫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逮走。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸠蚪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茅信,我是刑警寧澤盾舌,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站蘸鲸,受9級(jí)特大地震影響妖谴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棚贾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一窖维、第九天 我趴在偏房一處隱蔽的房頂上張望榆综。 院中可真熱鬧妙痹,春花似錦、人聲如沸鼻疮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽判沟。三九已至耿芹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挪哄,已是汗流浹背吧秕。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迹炼,地道東北人砸彬。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像斯入,于是被迫代替她去往敵國和親砂碉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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