【发布时间】:2013-06-09 20:15:44
【问题描述】:
Hibernate 中的级联是什么?我在map 标签中看到了cascade 属性。它有什么用?
cascade = all 是什么意思?我读到的还有其他属性,例如cascade="none|save-update|delete|all-delete-orphan|delete-orphan"。
【问题讨论】:
标签: java hibernate jakarta-ee
Hibernate 中的级联是什么?我在map 标签中看到了cascade 属性。它有什么用?
cascade = all 是什么意思?我读到的还有其他属性,例如cascade="none|save-update|delete|all-delete-orphan|delete-orphan"。
【问题讨论】:
标签: java hibernate jakarta-ee
级联是关于涉及一个对象通过关联传播到其他对象的持久性操作。级联可以应用于各种 Hibernate 操作,并且它通常是可传递的。定义关联的注释的“cascade=...”属性说明应该为该关联级联哪些操作。
Cascade = "all" 表示应用所有主要级联类型。从 Hibernate 5.3 开始,这些类型是:
(其中一些级联类型名称是旧的和/或已弃用。)
还有另外三种复合类型:
【讨论】:
级联是 Hibernate 使用传递持久性模型的方式。传递持久性是一种允许您自动将持久性传播到瞬态(尚未保存在数据库中的对象)和分离的子图(子对象)的技术。例如,已经持久化的父对象的新创建的子对象应该自动变为持久化,而无需调用 save() 或 persist() 方法。
Hibernate 中的级联有许多选项,例如保存更新、持久化、合并、删除等。Cascade='all' 是一种应用所有级联选项的方法。
【讨论】: