首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Hibernate 註解教程(九):級聯操作詳解

     編輯:Java 相關知識

CascadeType 級聯類型

Hibernate 通過 @CascadeType 定義關聯實體的級聯行為:

1. PERSIST(級聯保存)

調用 session.persist(object) 時觸發級聯保存(非 save 方法)。

2. MERGE(級聯合併)

調用 session.merge(object) 時觸發級聯合併;若內存無該對象則表現為級聯保存。

3. REMOVE(級聯刪除)

調用 session.delete() 時觸發級聯刪除。需關聯方與被關聯方均有 ID(先 get)。

4. REFRESH(級聯刷新)

調用 session.refresh() 時觸發級聯查詢,同步數據庫狀態。底層數據庫與內存不一致時會拋出 Found two representations of same collection 異常。

5. ALL(全部級聯)

包含以上所有級聯類型。

使用建議

  • 根據業務需求精確選擇級聯類型,避免濫用 ALL 導致性能問題
  • 刪除操作需確保關聯雙方均處於持久化狀態
  • 刷新操作適用於數據庫外部修改後的同步場景
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved