課程
/后端開發(fā)
/Java
/基于SSH實(shí)現(xiàn)員工管理系統(tǒng)之案例實(shí)現(xiàn)篇
根據(jù)ID查詢出對象,根據(jù)對象刪除,有利于級聯(lián)刪除,級聯(lián)刪除是什么?有什么好處?
2017-10-17
源自:基于SSH實(shí)現(xiàn)員工管理系統(tǒng)之案例實(shí)現(xiàn)篇 3-5
正在回答
簡單來說就是你的親戚群中有一個(gè)親戚 級聯(lián)刪除這個(gè)親戚之后 就等同于從所有的親戚腦子里抹掉這個(gè)親戚的所有印象?
級聯(lián)刪除就是說你刪除父表的一行數(shù)據(jù)時(shí),會根據(jù)你刪除的數(shù)據(jù)的id,找到你子表對應(yīng)的外鍵id刪除子表中的數(shù)據(jù)
Hibernate:
級聯(lián)操作
一.簡單的介紹
cascade和inverse (Employee – Department)
Casade用來說明當(dāng)對主對象進(jìn)行某種操作時(shí)是否對其關(guān)聯(lián)的從對象也作類似的操作,常用的cascade:
none,all,save-update,delete, lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many)。一般對many-to-one,many-to-many不設(shè)置級聯(lián),在<one-to-one>和<one-to-many>中設(shè)置級聯(lián)。
inverse表“是否放棄維護(hù)關(guān)聯(lián)關(guān)系”(在Java里兩個(gè)對象產(chǎn)生關(guān)聯(lián)時(shí),對數(shù)據(jù)庫表的影響),在one-to-many和many-to-many的集合定義中使用,inverse=”true”表示該對象不維護(hù)關(guān)聯(lián)關(guān)系;該屬性的值一般在使用有序集合時(shí)設(shè)置成false(注意hibernate的缺省值是false)。
one-to-many維護(hù)關(guān)聯(lián)關(guān)系就是更新外鍵。many-to-many維護(hù)關(guān)聯(lián)關(guān)系就是在中間表增減記錄。
注: 配置成one-to-one的對象不維護(hù)關(guān)聯(lián)關(guān)系
二,屬性的解析 延遲加載:在只查詢單表就可以滿足要求,再查詢關(guān)聯(lián)信息,為了提高數(shù)據(jù)庫查詢性能,使用延遲加載。class元素的lazy屬性設(shè)定為true,表示延遲加載,如果lazy設(shè)為false,則表示立即加載。以下對這二點(diǎn)進(jìn)行說明。 立即加載:表示Hibernate在從數(shù)據(jù)庫中取得數(shù)據(jù)組裝好一個(gè)對象(如學(xué)生1)后,會立即再從數(shù)據(jù)庫取得數(shù)據(jù)組裝此對象所關(guān)聯(lián)的對象(如學(xué)生證1)。 延遲加載:表示Hibernate在從數(shù)據(jù)庫中取得數(shù)據(jù)組裝好一個(gè)對象(如學(xué)生1)后,不會立即再從數(shù)據(jù)庫中取得數(shù)據(jù)組裝此對象所關(guān)聯(lián)的對象(如學(xué)生1),而是等到需要時(shí),才會從數(shù)據(jù)庫取得數(shù)據(jù)組裝此關(guān)聯(lián)對象。<one-to-one>元素的cascade屬性表明操作是否從父對象級聯(lián)到被關(guān)聯(lián)的對象, 它的取得可以是以下幾種: none:在保存,刪除或修改當(dāng)前對象時(shí),不對其附屬對象(關(guān)聯(lián)對象)進(jìn)行級聯(lián)操作。它是默認(rèn)值。 save-update:在保存,更新當(dāng)前對象時(shí),級聯(lián)保存,更新附屬對象(臨時(shí)對象,游離對象)。 delete:在刪除當(dāng)前對象時(shí),級聯(lián)刪除附屬對象。 all:所有情況下均進(jìn)行級聯(lián)操作,即包含save-update和delete操作。 delete-orphan:刪除和當(dāng)前對象解除關(guān)系的附屬對象。<one-to-one>元素的fetch屬性的可選值是join和select,默認(rèn)是select。當(dāng)fetch屬性設(shè)定為join時(shí),表示連接抓取(Join fetching):Hibernate通過在Select語句中使用outer join(外連接)來獲得對象的關(guān)聯(lián)實(shí)例或者關(guān)聯(lián)集合。當(dāng)fetch屬性設(shè)定為select時(shí),表示查詢抓取(Select fetching):需要另外發(fā)送一條Select語句抓取當(dāng)前對象的關(guān)聯(lián)實(shí)體或集合。
隨便找了一下
舉報(bào)
SSH框架整合案例之實(shí)現(xiàn)篇,手把手帶你實(shí)現(xiàn)員工管理系統(tǒng)
3 回答為什么刪除還要根據(jù)getid刪,直接刪對象不行嗎
1 回答我是用的oracle數(shù)據(jù)庫,級聯(lián)刪除時(shí)錯(cuò)
1 回答為什么要findById查詢后再刪除?從界面?zhèn)鱽淼牟痪褪峭暾膃mployee對象嗎?
1 回答部門刪除問題
2 回答findById沒有查出ID怎么辦
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-06-18
簡單來說就是你的親戚群中有一個(gè)親戚 級聯(lián)刪除這個(gè)親戚之后 就等同于從所有的親戚腦子里抹掉這個(gè)親戚的所有印象?
2017-11-10
級聯(lián)刪除就是說你刪除父表的一行數(shù)據(jù)時(shí),會根據(jù)你刪除的數(shù)據(jù)的id,找到你子表對應(yīng)的外鍵id刪除子表中的數(shù)據(jù)
2017-10-18
Hibernate:
級聯(lián)操作
一.簡單的介紹
cascade和inverse (Employee – Department)
Casade用來說明當(dāng)對主對象進(jìn)行某種操作時(shí)是否對其關(guān)聯(lián)的從對象也作類似的操作,常用的cascade:
none,all,save-update,delete, lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many)。一般對many-to-one,many-to-many不設(shè)置級聯(lián),在<one-to-one>和<one-to-many>中設(shè)置級聯(lián)。
inverse表“是否放棄維護(hù)關(guān)聯(lián)關(guān)系”(在Java里兩個(gè)對象產(chǎn)生關(guān)聯(lián)時(shí),對數(shù)據(jù)庫表的影響),在one-to-many和many-to-many的集合定義中使用,inverse=”true”表示該對象不維護(hù)關(guān)聯(lián)關(guān)系;該屬性的值一般在使用有序集合時(shí)設(shè)置成false(注意hibernate的缺省值是false)。
one-to-many維護(hù)關(guān)聯(lián)關(guān)系就是更新外鍵。many-to-many維護(hù)關(guān)聯(lián)關(guān)系就是在中間表增減記錄。
注: 配置成one-to-one的對象不維護(hù)關(guān)聯(lián)關(guān)系
二,屬性的解析
延遲加載:在只查詢單表就可以滿足要求,再查詢關(guān)聯(lián)信息,為了提高數(shù)據(jù)庫查詢
性能,使用延遲加載。class元素的lazy屬性設(shè)定為true,表示延遲加載,如果lazy設(shè)為false,則
表示立即加載。以下對這二點(diǎn)進(jìn)行說明。
立即加載:表示Hibernate在從數(shù)據(jù)庫中取得數(shù)據(jù)組裝好一個(gè)對象(如學(xué)生1)后,
會立即再從數(shù)據(jù)庫取得數(shù)據(jù)組裝此對象所關(guān)聯(lián)的對象(如學(xué)生證1)。
延遲加載:表示Hibernate在從數(shù)據(jù)庫中取得數(shù)據(jù)組裝好一個(gè)對象(如學(xué)生1)后,
不會立即再從數(shù)據(jù)庫中取得數(shù)據(jù)組裝此對象所關(guān)聯(lián)的對象(如學(xué)生1),
而是等到需要時(shí),才會從數(shù)據(jù)庫取得數(shù)據(jù)組裝此關(guān)聯(lián)對象。
<one-to-one>元素的cascade屬性表明操作是否從父對象級聯(lián)到被關(guān)聯(lián)的對象, 它
的取得可以是以下幾種:
none:在保存,刪除或修改當(dāng)前對象時(shí),不對其附屬對象(關(guān)聯(lián)對象)進(jìn)行級聯(lián)
操作。它是默認(rèn)值。
save-update:在保存,更新當(dāng)前對象時(shí),級聯(lián)保存,更新附屬對象(臨時(shí)對象,
游離對象)。
delete:在刪除當(dāng)前對象時(shí),級聯(lián)刪除附屬對象。
all:所有情況下均進(jìn)行級聯(lián)操作,即包含save-update和delete操作。
delete-orphan:刪除和當(dāng)前對象解除關(guān)系的附屬對象。
<one-to-one>元素的fetch屬性的可選值是join和select,默認(rèn)是select。
當(dāng)fetch屬性設(shè)定為join時(shí),表示連接抓取(Join fetching):Hibernate通過
在Select語句中使用outer join(外連接)來獲得對象的關(guān)聯(lián)實(shí)例或者關(guān)聯(lián)集合。
當(dāng)fetch屬性設(shè)定為select時(shí),表示查詢抓取(Select fetching):需要另外發(fā)
送一條Select語句抓取當(dāng)前對象的關(guān)聯(lián)實(shí)體或集合。
隨便找了一下