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