- 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中的级联类型,指定保存或更新操作应从父实体级联到子实体。
这些级联类型可以单独使用或组合使用,以根据应用程序的要求管理实体之间的关系。务必谨慎使用级联类型,因为如果使用不当,可能会导致意想不到的后果。
广告