詳解Hibernate cascade級(jí)聯(lián)屬性的CascadeType的用法
cascade(級(jí)聯(lián))
級(jí)聯(lián)在編寫觸發(fā)器時(shí)經(jīng)常用到,觸發(fā)器的作用是當(dāng) 主控表信息改變時(shí),用來(lái)保證其關(guān)聯(lián)表中數(shù)據(jù)同步更新。若對(duì)觸發(fā)器來(lái)修改或刪除關(guān)聯(lián)表相記錄,必須要?jiǎng)h除對(duì)應(yīng)的關(guān)聯(lián)表信息,否則,會(huì)存有臟數(shù)據(jù)。所以,適當(dāng)?shù)淖龇ㄊ?,刪除主表的同時(shí),關(guān)聯(lián)表的信息也要同時(shí)刪除,在hibernate中,只需設(shè)置cascade屬性值即可。
cascade表示級(jí)聯(lián)操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的屬性。
例如:
@ManyToOne(cascade = CascadeType.REFRESH, optional = true)
@JoinColumn(name = "user_id", unique = false)
private UserBaseInfo userBaseInfo;
配置多種級(jí)聯(lián),例如:
@OneToOne(cascade = {CascadeType.REFRESH,CascadeType.PERSIST,CascadeType.MERGE}, optional = true)
@JoinColumn(name = "user_id", unique = false)
private UserBaseInfo userBaseInfo;
CascadeType.PERSIST:級(jí)聯(lián)新增(又稱級(jí)聯(lián)保存):對(duì)order對(duì)象保存時(shí)也對(duì)items里的對(duì)象也會(huì)保存。對(duì)應(yīng)EntityManager的presist方法。
CascadeType.MERGE:級(jí)聯(lián)合并(級(jí)聯(lián)更新):若items屬性修改了那么order對(duì)象保存時(shí)同時(shí)修改items里的對(duì)象。對(duì)應(yīng)EntityManager的merge方法 。
CascadeType.REMOVE:級(jí)聯(lián)刪除:對(duì)order對(duì)象刪除也對(duì)items里的對(duì)象也會(huì)刪除。對(duì)應(yīng)EntityManager的remove方法。
CascadeType.REFRESH:級(jí)聯(lián)刷新:獲取order對(duì)象里也同時(shí)也重新獲取最新的items時(shí)的對(duì)象。對(duì)應(yīng)EntityManager的refresh(object)方法有效。即會(huì)重新查詢數(shù)據(jù)庫(kù)里的最新數(shù)據(jù)。
CascadeType.ALL:以上四種都是。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
您可能感興趣的文章:- spring級(jí)聯(lián)屬性賦值的兩種方式解析
- springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問(wèn)題解決
- spring源碼學(xué)習(xí)之bean的初始化以及循環(huán)引用
- mybatis中實(shí)現(xiàn)讓返回值與bean中字段相匹配
- SpringBoot普通類獲取spring容器中bean的操作
- 解決Spring Boot 多模塊注入訪問(wèn)不到j(luò)ar包中的Bean問(wèn)題
- 通過(guò)工廠模式返回Spring Bean方法解析
- Spring中BeanFactory和ApplicationContext的作用和區(qū)別(推薦)
- Spring內(nèi)部bean和級(jí)聯(lián)屬性用法詳解