
- Hibernate 教程
- Hibernate - 首頁
- ORM - 概述
- Hibernate - 概述
- Hibernate - 架構
- Hibernate - 環境
- Hibernate - 配置
- Hibernate - 會話
- Hibernate - 持久類
- Hibernate - 對映檔案
- Hibernate - 對映型別
- Hibernate - 示例
- Hibernate - 物件關係對映
- Hibernate - 級聯型別
- Hibernate - 註解
- Hibernate - 查詢語言
- Hibernate - Criteria 查詢
- Hibernate - 原生 SQL
- Hibernate - 快取
- Hibernate - 實體生命週期
- Hibernate - 批次處理
- Hibernate - 攔截器
- Hibernate - ID 生成器
- Hibernate - 儲存圖片
- Hibernate - log4j 整合
- Hibernate - Spring 整合
- Hibernate - Struts 2 整合
- Hibernate - Web 應用
- 對映表示例
- Hibernate - 基於層次結構的表
- Hibernate - 基於具體類的表
- Hibernate - 基於子類的表
- Hibernate 有用資源
- Hibernate - 問答
- Hibernate - 快速指南
- Hibernate - 有用資源
- Hibernate - 討論
Hibernate - 級聯型別
在hbm檔案中配置集合時,在對映一對多、多對多對映時,hbm檔案中的集合元素(例如,list)包含一個屬性cascade。
示例
... <class name="Student" table="student_tbl_100"> <id name="studentid"> <generator class="native"></generator> </id> <property name="name"></property> <map name="courses" table="course_tbl_100" cascade="all"> <key column="id"></key> <index column="course_id" type="string"></index> <element column="course_name" type="string"></element> </map> </class> ...
級聯型別也可以在註解中提到,如下所示
@Entity public class Customer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL) private Set<Order> orders = new HashSet<>(); // getters and setters }
@Entity public class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "customer_id") private Customer customer; // getters and setters }
當持久化、更新或刪除Customer實體時,所有關聯的Order實體也將被持久化、更新或刪除。
Hibernate中的不同級聯型別
Hibernate提供了幾種級聯選項型別,可用於管理實體之間的關係。以下是Hibernate中的不同級聯型別
CascadeType.ALL − Hibernate中的級聯型別,指定所有狀態轉換(建立、更新、刪除和重新整理)都應從父實體級聯到子實體。
CascadeType.PERSIST − Hibernate中的級聯型別,指定建立(或持久化)操作應從父實體級聯到子實體。
CascadeType.MERGE − Hibernate中的級聯型別,指定更新(或合併)操作應從父實體級聯到子實體。
CascadeType.REMOVE − Hibernate中的級聯型別,指定刪除操作應從父實體級聯到子實體。
CascadeType.REFRESH − Hibernate中的級聯型別,指定重新整理操作應從父實體級聯到子實體。
CascadeType.DETACH − Hibernate中的級聯型別,指定分離操作應從父實體級聯到子實體。
CascadeType.REPLICATE − Hibernate中的級聯型別,指定複製操作應從父實體級聯到子實體。
CascadeType.SAVE_UPDATE − Hibernate中的級聯型別,指定儲存或更新操作應從父實體級聯到子實體。
這些級聯型別可以單獨使用或組合使用,以根據應用程式的要求管理實體之間的關係。務必謹慎使用級聯型別,因為如果使用不當,可能會導致意想不到的後果。
廣告