詳解Hibernate cascade級聯(lián)屬性的CascadeType的用法
cascade(級聯(lián))
級聯(lián)在編寫觸發(fā)器時(shí)經(jīng)常用到,觸發(fā)器的作用是當(dāng) 主控表信息改變時(shí),用來保證其關(guān)聯(lián)表中數(shù)據(jù)同步更新。若對觸發(fā)器來修改或刪除關(guān)聯(lián)表相記錄,必須要刪除對應(yīng)的關(guān)聯(lián)表信息,否則,會存有臟數(shù)據(jù)。所以,適當(dāng)?shù)淖龇ㄊ?,刪除主表的同時(shí),關(guān)聯(lián)表的信息也要同時(shí)刪除,在hibernate中,只需設(shè)置cascade屬性值即可。
cascade表示級聯(lián)操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的屬性。
例如:
@ManyToOne(cascade = CascadeType.REFRESH, optional = true) @JoinColumn(name = "user_id", unique = false) private UserBaseInfo userBaseInfo;
配置多種級聯(lián),例如:
@OneToOne(cascade = {CascadeType.REFRESH,CascadeType.PERSIST,CascadeType.MERGE}, optional = true) @JoinColumn(name = "user_id", unique = false) private UserBaseInfo userBaseInfo;
CascadeType.PERSIST:級聯(lián)新增(又稱級聯(lián)保存):對order對象保存時(shí)也對items里的對象也會保存。對應(yīng)EntityManager的presist方法。
CascadeType.MERGE:級聯(lián)合并(級聯(lián)更新):若items屬性修改了那么order對象保存時(shí)同時(shí)修改items里的對象。對應(yīng)EntityManager的merge方法 。
CascadeType.REMOVE:級聯(lián)刪除:對order對象刪除也對items里的對象也會刪除。對應(yīng)EntityManager的remove方法。
CascadeType.REFRESH:級聯(lián)刷新:獲取order對象里也同時(shí)也重新獲取最新的items時(shí)的對象。對應(yīng)EntityManager的refresh(object)方法有效。即會重新查詢數(shù)據(jù)庫里的最新數(shù)據(jù)。
CascadeType.ALL:以上四種都是。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
標(biāo)簽:開封 烏蘭察布 山南 白銀 銅川 自貢 吉林 臨汾
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Hibernate cascade級聯(lián)屬性的CascadeType的用法》,本文關(guān)鍵詞 詳解,Hibernate,cascade,級聯(lián),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。上一篇:jsp內(nèi)置對象