![hibernate關(guān)系映射注解配置_第1頁(yè)](http://file4.renrendoc.com/view/4a2565b8568e6b60cba0462c9ad58052/4a2565b8568e6b60cba0462c9ad580521.gif)
![hibernate關(guān)系映射注解配置_第2頁(yè)](http://file4.renrendoc.com/view/4a2565b8568e6b60cba0462c9ad58052/4a2565b8568e6b60cba0462c9ad580522.gif)
![hibernate關(guān)系映射注解配置_第3頁(yè)](http://file4.renrendoc.com/view/4a2565b8568e6b60cba0462c9ad58052/4a2565b8568e6b60cba0462c9ad580523.gif)
![hibernate關(guān)系映射注解配置_第4頁(yè)](http://file4.renrendoc.com/view/4a2565b8568e6b60cba0462c9ad58052/4a2565b8568e6b60cba0462c9ad580524.gif)
![hibernate關(guān)系映射注解配置_第5頁(yè)](http://file4.renrendoc.com/view/4a2565b8568e6b60cba0462c9ad58052/4a2565b8568e6b60cba0462c9ad580525.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——hibernate關(guān)系映射注解配置
關(guān)于hibernate的關(guān)系映射配置總結(jié),要是有錯(cuò)誤的地方歡迎大家指正。
1.HibernateAnnotation關(guān)系映射有下面幾種類(lèi)型:
1)一對(duì)一外鍵關(guān)聯(lián)映射(單向)
2)一對(duì)一外鍵關(guān)聯(lián)映射(雙向)
3)一對(duì)一主鍵關(guān)聯(lián)映射(不重要,有需要看下文檔即可)
在實(shí)際中很少用,使用注解@PrimaryKeyJoinColumn
意思是說(shuō),我的主鍵去參考另外一張表中的主鍵,作為我的主鍵,但是在我測(cè)試使用
注解一對(duì)一主鍵關(guān)聯(lián)映射,在生成表的時(shí)候,數(shù)據(jù)庫(kù)中并沒(méi)有生成關(guān)聯(lián),使用XML
映射可以生成。Annotation注解一對(duì)一主鍵關(guān)聯(lián)映,有些bug。不過(guò)沒(méi)空去研究它。
由于在實(shí)際開(kāi)發(fā)中一對(duì)一很少用。在實(shí)際開(kāi)發(fā)中我機(jī)遇沒(méi)有用過(guò),主鍵關(guān)聯(lián)就更少了
4)多對(duì)一關(guān)聯(lián)映射(單向)
5)一對(duì)多關(guān)聯(lián)映射(單向)
6)一對(duì)多關(guān)聯(lián)映射(雙向)
7)多對(duì)多關(guān)聯(lián)映射(單向)
8)多對(duì)多關(guān)聯(lián)映射(雙向)
2.介紹各種映射用法
1)一對(duì)一外鍵關(guān)聯(lián)映射(單向)HusbandWife
publicclassHusband{
privateWifewife;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name=wife_id,unique=true)
publicWifegetWife(){…}
…
}
publicclassWife{
}
一對(duì)一外鍵關(guān)聯(lián),使用@OneToOne,并設(shè)置了級(jí)聯(lián)操作
@JoinColum設(shè)置了外鍵的名稱(chēng)為wife_id(數(shù)據(jù)庫(kù)字段名),假使不設(shè)置,則默認(rèn)為另一類(lèi)的屬性名+_id
外鍵的值是唯一的(unique),不可重復(fù),與另一類(lèi)的主鍵一致
2)一對(duì)一外鍵關(guān)聯(lián)映射(雙向)HusbandWife
publicclassHusband{
privateWifewife;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name=wife_id,unique=true)
publicWifegetWife(){…}
...
}
publicclassWife{
privateHusbandhusband;
@OneToOne(mappedBy=wife,cascade=CascadeType.ALL)
publicHusbandgetHusband(){…}
...
}
一對(duì)一雙向關(guān)聯(lián)關(guān)系,使用@OneToOne
注意:需要加上mappedBy=wife,假使不加上的話,Wife也會(huì)生成一個(gè)外鍵(husband_id)。mappedby=wife需要指向與他關(guān)聯(lián)對(duì)象的一個(gè)屬性(即Husband類(lèi)里面的wife屬性),這里的會(huì)在Husband表里面生成個(gè)外鍵wife_id字段,而Wife表里則不會(huì)生成。這里Husband作為維護(hù)端即主
關(guān)于hibernate的關(guān)系映射配置總結(jié),要是有錯(cuò)誤的地方歡迎大家指正。
體端,Wife作為被維護(hù)端。
說(shuō)明雙向關(guān)聯(lián)關(guān)系中,有且僅有一端是作為主體(owner)端存在的
規(guī)律:只要是雙向關(guān)聯(lián)關(guān)系,都加上mappedby
cascade=CascadeType.ALL級(jí)聯(lián)
4)多對(duì)一關(guān)聯(lián)映射(單向)StudentsGroup
publicclassStudents{
privateGroupgroup;
@ManyToOne(targetEntity=Group.class)
@JoinColumn(name=group_id)
publicGroupgetGroup(){…}
…
}
publicclassGroup{
}
多對(duì)一注解@ManyToOne
targetEntity指定了關(guān)聯(lián)對(duì)象
@JoinColumn(name=Group_id)指定生產(chǎn)的外鍵的字段名,默認(rèn)是Group_id
5)一對(duì)多關(guān)聯(lián)映射(單向)GroupStudents
publicclassGroup{
privateSetStudentsstudents=newHashSetStudents(0);
@OneToMany
@JoinColumn(name=group_id)
publicSetStudentsgetStudents(){…}
…
}
publicclassStudents{
}
一對(duì)多注解@OneToMany(單向)
假使只寫(xiě)@OneToMany的話,hibernate會(huì)建一張中間表來(lái)
維護(hù)他們之間的關(guān)系,
加上@JoinColumn(name=Group_id),則不會(huì)建中間表,他會(huì)在
多的一端加上外鍵Group_id,來(lái)維護(hù)他們之間的關(guān)系
6)一對(duì)多關(guān)聯(lián)映射(雙向)GroupStudents
publicclassGroup{
privateSetStudentsstudents=newHashSetStudents(0);
@OneToMany(mappedBy=group)
@JoinColumn(name=group_id)
publicSetStudentsgetStudents(){…}
…
}
publicclassStudents{
privateGroupgroup;
@ManyToOne
@JoinColumn(name=group_id)
publicGroupgetGroup(){…}
關(guān)于hibernate的關(guān)系映射配置總結(jié),要是有錯(cuò)誤的地方歡迎大家指正。
…
}
一端:
@OneToMany(mappedBy=group)
@JoinColumn(name=group_id)
一對(duì)多雙向,在一的一端中設(shè)置mappedBy
說(shuō)明多的一端為主導(dǎo)
假使指定了外鍵字段名稱(chēng),則多的一端也需要指定一致的字段名稱(chēng)
多端:
@ManyToOne
@JoinColumn(name=group_id)
一對(duì)多雙向
需要指定外鍵與一的一端給的外鍵名稱(chēng)一致,@JoinColumn(name=group_id)
也可以不指定,假使在多的一端不指定,則一的一端也不能指定
否則為生成兩個(gè)外鍵
7)多對(duì)多關(guān)聯(lián)映射(單向)TeachersStudents
publicclassTeachers{
privateSetStudentsstudents=newHashSetStudents(0);
@ManyToMany
@JoinTable(name=Teacher_Students,
joinColumns={@JoinColumn(name=students_id)},
inverseJoinColumns={@JoinColumn(name=teachers_id)}
)
publicSetStudentsgetStudents(){…}
…
}
publicclassStudents{
}
@ManyToMany
多對(duì)多映射:注解@ManyToMany(單向)
默認(rèn)狀況下,hibernate會(huì)自動(dòng)的創(chuàng)立一張中間表,
來(lái)維護(hù)多對(duì)多關(guān)系
默認(rèn)中間表的名稱(chēng):Teacher_Students中間表,字段的名稱(chēng)teachers_id,students_id假使想更換表名和字段名稱(chēng),注解如下:
@ManyToMany
@JoinTable(name=Teacher_Students,
joinColumns={@JoinColumn(name=students_id)},
inverseJoinColumns={@JoinColumn(name=teachers_id)}
)
@JoinTable(name=Teacher_Students,
指定中間表的表名
關(guān)于hibernate的關(guān)系映射配置總結(jié),要是有錯(cuò)誤的地方歡迎大家指正。
joinColumns={@JoinColumn(name=students_id)},
指定當(dāng)前對(duì)象的外鍵
inverseJoinColumns={@JoinColumn(name=teachers_id)}
指定關(guān)聯(lián)對(duì)象的外鍵
8)多對(duì)多關(guān)聯(lián)映射(雙向)TeachersStudents
publicclassTeachers{
privateSetStudentsstudents=newHashSetStudents(0);
@ManyToMany
@JoinTable(name=Teacher_Students,
joinColumns={@JoinColumn(name=teachers_id)},
inverseJoinColumns={@JoinColumn(name=students_id)}
)
publicSetStudentsgetStudents(){…}
…
}
publicclassStudents{
privateSetTeachersteachers=newHashSetTeachers(0);
@Man
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同樣例舞臺(tái)燈光音響租賃合同范本
- 2024春八年級(jí)語(yǔ)文下冊(cè) 第1單元 2回延安說(shuō)課稿 新人教版
- 5草船借箭說(shuō)課稿-2023-2024學(xué)年五年級(jí)下冊(cè)語(yǔ)文統(tǒng)編版
- Unit1 Making friends(說(shuō)課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 2024-2025學(xué)年高中化學(xué) 第一章 物質(zhì)結(jié)構(gòu)元素周期律 第一節(jié) 元素周期表第3課時(shí)說(shuō)課稿3 新人教版必修2
- 寫(xiě)結(jié)算傭金合同范例
- 劃撥土地房屋購(gòu)買(mǎi)合同范例
- 產(chǎn)品購(gòu)售合同范例
- 農(nóng)產(chǎn)品預(yù)付款合同范例
- 2024年01月江西2024年江西銀行贛州分行招考筆試歷年參考題庫(kù)附帶答案詳解
- 云南省曲靖市羅平縣2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 中國(guó)糖尿病防治指南(2024版)要點(diǎn)解讀
- Unit 1 Nice boys and girls【知識(shí)精研】-一年級(jí)英語(yǔ)下學(xué)期(人教PEP版一起)
- 《口腔科學(xué)緒論》課件
- 2024年高考數(shù)學(xué)(理)試卷(全國(guó)甲卷)(空白卷)
- 2024版CSCO胰腺癌診療指南解讀課件
- 《應(yīng)急管理行政執(zhí)法人員依法履職管理規(guī)定》知識(shí)培訓(xùn)
- 《醫(yī)療機(jī)構(gòu)環(huán)境表面清潔與消毒管理規(guī)范》-華西醫(yī)院案例
- 2024年黑龍江農(nóng)業(yè)工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)
- 合同簽訂執(zhí)行風(fēng)險(xiǎn)管控培訓(xùn)
- DB43-T 3022-2024黃柏栽培技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論