這是單表映射的配置:
創(chuàng)新互聯(lián)專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。
Student.hbm.xml
配置雙向一對多或者雙向多對一的配置:
Grade.hbm.cml
Student.hbm.xml
配置多對多關(guān)聯(lián)關(guān)系的配置,數(shù)據(jù)庫中有三個表project,employee,proemp(關(guān)聯(lián)表)
Project.hbm.xml
Employee.hbm.xml
/* * 多對多關(guān)聯(lián)關(guān)系的配置 * 同時建立了Project到Employee之間的雙向關(guān)聯(lián)關(guān)系 * 關(guān)聯(lián)關(guān)系的維護由Project方來處理(在Employee.hbm.xml中的屬性中設(shè)置inverse="true") * 并且在保存Project對象時會一并保存Employee對象 */
Hibernate的Generator屬性有7種class,本文簡略描述了這7種class的意義和用法。
1、identity:用于MySQL數(shù)據(jù)庫。特點:遞增
< id name="id" column="id"> < generator class="identity"/> < /id>
注:對于MySql數(shù)據(jù)庫使用遞增序列時需要在建表時對主鍵指定為auto_increment屬性。
2、sequence:用于Oracle數(shù)據(jù)庫
< id name="id" column="id"> < generator class="sequence"> < param name="sequence">序列名< /param> < /generator> < /id>
3、native:跨數(shù)據(jù)庫時使用,由底層方言產(chǎn)生。
Default.sequence為hibernate_sequence
< id name="id" column="id"> < generator class="native"/> < /id>
注:使用native時Hibernate默認(rèn)會去查找Oracle中的hibernate_sequence序列。
如果數(shù)據(jù)庫中沒有該序列,連接數(shù)據(jù)庫時會報錯。
4、hilo:通過高低位合成id,先建表hi_value,再建列next_value。必須要有初始值。
< id name="id" column="id"> < generator class="hilo"> < param name="table">high_val< /param> < param name="column">nextval< /param> < param name="max_lo">5< /param> < /generator> < /id>
5、sequencehilo:同過高低位合成id,建一個sequence序列,不用建表。
< id name="id" column="id"> < generator class="hilo"> < param name="sequence">high_val_seq< /param> < param name="max_lo">5< /param> < /generator> < /id>
6、assigned:用戶自定義id;
< id name="id" column="id"> < generator class="assigned"/> < /id>
7、foreign:用于一對一關(guān)系共享主健時,兩id值一樣。
當(dāng)設(shè)置了cascade屬性不為none時,Hibernate會自動持久化所關(guān)聯(lián)的對象
cascade屬性的可能值有
all: 所有情況下均進行關(guān)聯(lián)操作,即save-update和delete。
none: 所有情況下均不進行關(guān)聯(lián)操作。這是默認(rèn)值。
save-update: 在執(zhí)行save/update/saveOrUpdate時進行關(guān)聯(lián)操作。
delete: 在執(zhí)行delete 時進行關(guān)聯(lián)操作。
all-delete-orphan: 當(dāng)一個節(jié)點在對象圖中成為孤兒節(jié)點時,刪除該節(jié)點。比如在一個一對多的關(guān)系中,Student包含多個book,當(dāng)在對象關(guān)系中刪除一個book時,此book即成為孤兒節(jié)點。