【问题标题】:What is cascading in Hibernate? [duplicate]Hibernate 中的级联是什么? [复制]
【发布时间】: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


    【解决方案1】:

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

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

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

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

    还有另外三种复合类型:

    • “all_delete_orphan” - 与“all”相同,并且允许删除因级联而孤立的实体。
    • “delete_orphan” - 表示“删除”加上孤立删除。
    • “none” - 表示没有级联。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-31
        • 2010-09-25
        • 1970-01-01
        • 2010-11-05
        • 2021-12-13
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多