程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 詳解Hibernate cascade級聯屬性的CascadeType的用法

詳解Hibernate cascade級聯屬性的CascadeType的用法

編輯:關於JSP

詳解Hibernate cascade級聯屬性的CascadeType的用法

cascade(級聯)

級聯在編寫觸發器時經常用到,觸發器的作用是當 主控表信息改變時,用來保證其關聯表中數據同步更新。若對觸發器來修改或刪除關聯表相記錄,必須要刪除對應的關聯表信息,否則,會存有髒數據。所以,適當的做法是,刪除主表的同時,關聯表的信息也要同時刪除,在hibernate中,只需設置cascade屬性值即可。

cascade表示級聯操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的屬性。

例如:

@ManyToOne(cascade = CascadeType.REFRESH, optional = true) 
@JoinColumn(name = "user_id", unique = false) 
private UserBaseInfo userBaseInfo; 

配置多種級聯,例如:

@OneToOne(cascade = {CascadeType.REFRESH,CascadeType.PERSIST,CascadeType.MERGE}, optional = true) 
@JoinColumn(name = "user_id", unique = false) 
private UserBaseInfo userBaseInfo; 

CascadeType.PERSIST:級聯新增(又稱級聯保存):對order對象保存時也對items裡的對象也會保存。對應EntityManager的presist方法。

CascadeType.MERGE:級聯合並(級聯更新):若items屬性修改了那麼order對象保存時同時修改items裡的對象。對應EntityManager的merge方法 。

CascadeType.REMOVE:級聯刪除:對order對象刪除也對items裡的對象也會刪除。對應EntityManager的remove方法。

CascadeType.REFRESH:級聯刷新:獲取order對象裡也同時也重新獲取最新的items時的對象。對應EntityManager的refresh(object)方法有效。即會重新查詢數據庫裡的最新數據。

CascadeType.ALL:以上四種都是。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved