



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Hibernate Annotation關(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)空去研究它。 因?yàn)樵趯?shí)際開(kāi)發(fā)中一對(duì)一很少用。在實(shí)際開(kāi)發(fā)中我機(jī)會(huì)沒(méi)有用過(guò),主鍵關(guān)聯(lián)就更少了4)多對(duì)一關(guān)聯(lián)映射(單向)5)對(duì)多關(guān)聯(lián)映射(單向
2、)6)對(duì)多關(guān)聯(lián)映射(雙向)7)多對(duì)多關(guān)聯(lián)映射(單向)8)多對(duì)多關(guān)聯(lián)映射(雙向)介紹各種映射用法1)一對(duì)一外鍵關(guān)聯(lián)映射(單向)Husband Wifepublic class Husbandprivate Wife wife;OneToOne(cascade二CascadeType.ALL)JoinColumn(name=wife_id,unique二true)public Wife getWife()public class Wife一對(duì)一外鍵關(guān)聯(lián),使用OneToOne,并設(shè)置了級(jí)聯(lián)操作JoinColum設(shè)置了外鍵的名稱(chēng)為wife_id (數(shù)據(jù)庫(kù)字段名),如果不設(shè)置,則默認(rèn)為另一類(lèi)的屬性名 +
3、 _id外鍵的值是唯一的(unique),不可重復(fù),與另一類(lèi)的主鍵一致2)一對(duì)一外鍵關(guān)聯(lián)映射(雙向)Husband Wifepublic class Husbandprivate Wife wife;OneToOne(cascade二CascadeType.ALL)JoinColumn(name=wife_id,unique二true)public Wife getWife().public class Wifeprivate Husband husband;OneToOne(mappedBy=wife,cascade二CascadeType.ALL)public Husband getHus
4、band().一對(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ù)端即主 體端,Wife作為被維護(hù)端。說(shuō)明雙向關(guān)聯(lián)關(guān)系中,有且僅有一端是作為主體(owner)端存在的規(guī)律:只要是雙向關(guān)聯(lián)關(guān)系,都加上mappedbycascade=CascadeType.ALL 級(jí)聯(lián)多對(duì)一關(guān)聯(lián)映射(單向)Stu
5、dents Grouppublic class Students private Group group;ManyToOne(targetEntity= Group.class)JoinColumn(name=group_id)public Group getGroup()public class Group多對(duì)一注解ManyToOnetargetEntity指定了關(guān)聯(lián)對(duì)象JoinColumn(name=Group_id)指定生產(chǎn)的外鍵的字段名,默認(rèn)是Group_id一對(duì)多關(guān)聯(lián)映射(單向)Group Studentspublic class Groupprivate Set students
6、= new HashSet(0);OneToManyJoinColumn(name=group_id)public Set getStudents() public class Students一對(duì)多注解OneToMany (單向)如果只寫(xiě)OneToMany的話,hibernate會(huì)建一張中間表來(lái)維護(hù)他們之間的關(guān)系,加上JoinColumn(name=Group_id),則不會(huì)建中間表,他會(huì)在多的一端加上外鍵Group_id,來(lái)維護(hù)他們之間的關(guān)系一對(duì)多關(guān)聯(lián)映射(雙向)Group Studentspublic class Groupprivate Set students = new HashS
7、et(0);OneToMany(mappedBy=group)JoinColumn(name=group_id)public Set getStudents() public class Studentsprivate Group group;ManyToOneJoinColumn(name=group_id)public Group getGroup()一端:OneToMany(mappedBy=group) JoinColumn(name=group_id) 一對(duì)多雙向,在一的一端中設(shè)置mappedBy 說(shuō)明多的一端為主導(dǎo) 如果指定了外鍵字段名稱(chēng),則多的一端也需要指定相同的字段名稱(chēng)多端:M
8、anyToOneJoinColumn(name=group_id)一對(duì)多雙向需要指定外鍵與一的一端給的外鍵名稱(chēng)一致,JoinColumn(name=group_id) 也可以不指定,如果在多的一端不指定,則一的一端也不能指定 否則為生成兩個(gè)外鍵多對(duì)多關(guān)聯(lián)映射(單向)Teachers Studentspublic class Teachersprivate Set students = new HashSet(0);ManyToManyJoinTable(name=Teacher_Students, joinColumns=JoinColumn(name= students_id), inver
9、seJoinColumns=JoinColumn(name=teachers_id ) )public Set getStudents() public class StudentsManyToMany多對(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),注解如下:ManyToManyJoinTable(name=Teacher_Students,joinColumns=JoinColum
10、n(name= students_id), inverseJoinColumns=JoinColumn(name=teachers_id ) )JoinTable(name=Teacher_Students, 指定中間表的表名joinColumns=JoinColumn(name=students_id),指定當(dāng)前對(duì)象的外鍵inverseJoinColumns=JoinColumn(name=teachers_id ) 指定關(guān)聯(lián)對(duì)象的外鍵多對(duì)多關(guān)聯(lián)映射(雙向)Teachers Studentspublic class Teachersprivate Set students = new HashSet(0);ManyToManyJoinTable(name=Teacher_Students,joinColumns=JoinColumn(name=teachers_id), inverseJoinColumns =JoinColumn(name=students_id) )public Set getStudents() public class Studentsprivate Set teachers = new HashSet(0);ManyToMany(map
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語(yǔ)二A卷試題及答案
- 淺表淋巴結(jié)試題及答案
- 課文臺(tái)階面試題及答案
- 未來(lái)汽車(chē)智能化趨勢(shì)研究試題及答案
- 音樂(lè)理論知識(shí)考題反饋及答案
- 醫(yī)療數(shù)據(jù)共享挑戰(zhàn)與隱私保護(hù)的平衡
- 起重指揮考試題及答案
- 活學(xué)活用幼兒園數(shù)學(xué)試題及答案
- 注冊(cè)土木工程師考試案例試題及答案
- 新能源汽車(chē)的安全認(rèn)證測(cè)試題及答案
- 相關(guān)方需求和期望識(shí)別評(píng)價(jià)表
- 西南科技大學(xué)井巷工程課程設(shè)計(jì)樣本
- 《養(yǎng)老護(hù)理員職業(yè)培訓(xùn)》課程標(biāo)準(zhǔn)
- 船舶修造業(yè)通用安全知識(shí)講義課件
- 新生兒死亡討論模板課件
- 曼娜小說(shuō)全文的回憶
- 《精益生產(chǎn)培訓(xùn)》課件
- 快遞客戶服務(wù)與營(yíng)銷(xiāo)快遞客戶維護(hù)
- 《中國(guó)的生物災(zāi)害》課件
- 《吸煙的危害性》課件
- 賓館飯店消防安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論