新聞中心
Hibernate如果上手了,那么在Hibernate中的一對(duì)多,多對(duì)一,多對(duì)多,一對(duì)一這些關(guān)系,應(yīng)該很快能理解.

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比霍州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式霍州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋霍州地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
下面就把這幾種關(guān)系簡(jiǎn)單說一下.
本文中用到的三個(gè)實(shí)例化類分別為Customer(保存客戶基本信息),CustomerDetails(保存客戶詳細(xì)信息),CustomerBack(中間表,保存兩表之間的關(guān)聯(lián))
對(duì)應(yīng)的表功能同上.說明中的主表指Customer,子表指CustomerDetails,中間表指CustomerBack
一對(duì)多
﹤set name="CustomerDetails" table="customer_details" |
這段代碼是需要放在一對(duì)多中的主表配置中的
◆name:集合屬性的名稱(也可以理解為一對(duì)多中那個(gè)子屬性名)
◆table(可選,默認(rèn)為屬性的名稱):集合表的名稱(可理解為一對(duì)多中子表的名稱)
◆inverse(可選,默認(rèn)為false):標(biāo)記這個(gè)集合作為雙向關(guān)聯(lián)關(guān)系中的方向的一端
◆cascade(可選:默認(rèn)為none):讓操作級(jí)聯(lián)到子實(shí)體
◆sort(可選):指定集合的排序順序
其它如schema,lazy,order–by,where,outer–join,batch–size,access請(qǐng)參照有關(guān)書籍.
key 中的column=”cust_Id”,cust_Id并不是主表的字段,而是子表中保存主表的字段.
如主表主鍵為cust_Id,子表中為了保存主表的主鍵,也建一個(gè)cust_Id,key里的cust_Id就是指子表中的cust_Id.
one–to–many 中的class為一對(duì)多的子表實(shí)例類.
多對(duì)一
﹤many to one
name="Customer"
class="Customer"
cascade="all"
outer join="false"
update="false"
insert="false"
column="cust_Id"
not null="true"/﹥
|
多對(duì)一中,沒有像一對(duì)多的,而是直接用了many–to–one.這段代碼是需要放在多對(duì)一中的子表配置中的(即CustomerDetails的配置中)
◆outer–join:為外鏈接
◆update,insert:指定對(duì)應(yīng)的字段是否在用于UPDATE和/或INSERT的SQL語(yǔ)句中包含.
◆column:關(guān)聯(lián)的字段名.(多對(duì)主類對(duì)應(yīng)的字段名)
◆not–null:是否為null.
多對(duì)多
﹤set name="CustomerBack" table="customer_back" cascade="all"﹥ ﹤key column="cust_Id"/﹥ ﹤many to many class="CustomerDetails" column="custD_id"/﹥ ﹤/set﹥
多對(duì)多的配置與一對(duì)多有點(diǎn)類似.這段代碼放的位置也是與一對(duì)多的代碼放的位置一樣.
多對(duì)多關(guān)系中,多采用中間表來關(guān)聯(lián)兩個(gè)有多多關(guān)系的表的.如Customer與CustomerDetails存在多對(duì)多的關(guān)系,那么往往是用另外一個(gè)表如CustomerBack表來保存它們的關(guān)系的,也就是中間表.
◆name:屬性的名稱(可理解為中間表的名稱)
◆table:表的名稱(可理解為中間表的表名稱)
◆key 里的cust_Id,是指中間表的cust_Id,為了保存Customer與CustomerDetails的關(guān)系,中間表中分別建了cust_Id(Customer的主鍵)與custD_Id(CustomerDetails的主鍵)
◆many–to–many中的Class是指多對(duì)多中的另一個(gè)實(shí)例化類,column是指CustomerDetails與中間表關(guān)聯(lián)的字段名.這里是指中間表的
◆custD_Id,不能理解為CustomerDetails的主鍵.
一對(duì)一
﹤one to one name="CustomerDetails" class="CustomerDetails" cascade="all" /﹥
一對(duì)一的關(guān)系更簡(jiǎn)單.
在Customer表的配置中放上這段代碼就行了.
◆name:屬性名稱
◆class:關(guān)聯(lián)的實(shí)例化類名
分享標(biāo)題:Hibernate一對(duì)多,多對(duì)一,多對(duì)多,一對(duì)一關(guān)系匯總
URL標(biāo)題:http://m.5511xx.com/article/ccioidd.html


咨詢
建站咨詢
