29

Hibernate中的级联是什么?cascade我在map标签中看到了一个属性。这是什么意思?

比如什么cascade = all意思?我读到的还有其他属性
cascade="none|save-update|delete|all-delete-orphan|delete-orphan"

4

2 回答 2

24

级联是关于涉及一个对象通过关联传播到其他对象的持久性操作。级联可以应用于各种 Hibernate 操作,并且它通常是可传递的。定义关联的注释的“cascade=...”属性说明了应该为该关联级联哪些操作。

Cascade = "all" 表示应用所有主要的级联类型。从 Hibernate 5.3 开始,这些类型是:

  • “删除”/“删除”,
  • “分离”/“驱逐”,
  • “合并”,
  • “锁”,
  • “坚持”,
  • “刷新”,
  • “复制”,
  • “保存更新”/“更新”

(其中一些级联类型名称是旧的和/或已弃用的。)

还有三种复合类型:

  • “all_delete_orphan” - 表示与“all”相同,并允许删除因级联而孤立的实体。
  • “delete_orphan” - 表示“删除”加上孤儿删除。
  • “无” - 表示没有级联。
于 2013-06-13T12:37:23.940 回答
7

级联是 Hibernate 使用传递持久性模型的方式。传递持久性是一种允许您自动将持久性传播到瞬态(尚未保存在数据库中的对象)和分离的子图(子对象)的技术。例如,已经持久化的父对象的新创建的子对象应该自动变为持久化,而无需调用 save() 或 persist() 方法。

Hibernate 中的级联有许多选项,如保存更新、持久化、合并、删除等。 Cascade='all' 是一种应用所有级联选项的方法。

于 2015-08-15T08:15:05.273 回答