`

13 级联和关系维护(Cascade 和Inverse)

阅读更多

Cascade用来说明当对主对象进行某操作时, 是否对其关联的从对象也作类似的操作.

例如:删除主对象的同时 要不要删除从对象, 主对象不存在了,从对象理理论上出应删除.


常用的Cascade:  none , all, save-update , delete , lock , refresh , evict , replicate , persist, merge, delete-orphan(一对多,删除孤儿)


一般, 多对多, 多对一, 不设级联.  一对一, 一对多 中设置级联.






--------------------------------------------------------------------------------------------------

(Hibernate开发指南 作者:夏昕)


Inverse和Cascade


Inverse,直译为“反转”。在Hibernate语义中,Inverse指定了关联关系中的
方向。
关联关系中,inverse=”false”的为主动方(默认值),由主动方负责维护关联关系。具体可
参见一对多关系中的描述。


我补充:

      一般只能给<set><list>等集合标签设置 inverse


     "一对多"中,  一般在"一"的一方放弃维护权(inverse=”true” ).


     "多对多"中,无主从方, 有任意一方放弃维护权(inverse=”true” )都可以.

      前面做过的"老师"与"学生"的练习中:

            第一种维护关系的方法:  为老师set()学生,  不能为学生set () 老师 ,  SQL可以正确执行(否则中间表主键冲突).

            第二种维护关系的方法:  为老师set () 学生,  为学生se () t老师, 设置一方 放弃维护权(inverse=”true” ),  就可以正确执行.

 

 

-----------------------------------------------------------------------------------------------------------------------------------------
而Cascade,译为“级联”,表明对象的级联关系,如TUser的Cascade设为all,

就表明如果发生对user对象的操作,需要对user所关联的对象也进行同样的操作。如对
user对象执行save操作,则必须对user对象相关联的address也执行save操作。
初学者常常混淆inverse和cascade,实际上,这是两个互不相关的概念。Inverse
指的是关联关系的控制方向,而cascade指的是层级之间的连锁操作。

分享到:
评论

相关推荐

    hibernate 级联(cascade和inverse)一对多

    在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性。下面将详细阐述这两个概念以及如何在实际应用中使用它们。 一、Hibernate级联(Cascade) 级联操作允许我们将对一个实体的更改自动...

    Hibernate_级联关系说明_-_关于cascade和inverse的用法

    在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...

    hibernate inverse和cascade的详细讲解

    - **多对多**:例如,一个`Student`和多个`Course`课程的关系,`inverse`属性通常放在独立的关系表中,并且只能在一方设置为`true`,另一方为`false`,以确保关系的正确维护。 #### 三、Cascade 属性详解 `cascade...

    inverse和cascade使用阐述

    在IT领域,"inverse"和"cascade"是两个常见的概念,尤其在数据库设计、软件工程以及数据处理中。这两个术语通常与关系型数据库中的外键约束、对象关系映射(ORM)工具,以及某些编程框架的特性相关。下面将详细阐述这...

    NHibernate Inverse & Cascade

    "NHibernate Inverse & Cascade"是两个关键概念,对于理解和有效使用NHibernate至关重要。 **Inverse属性** Inverse属性主要用于控制NHibernate如何处理关联对象的持久化。在一对多或多对一的关系中,当一个实体...

    Hibernate中cascade和inverse应用

    在 Hibernate 框架中,`cascade` 和 `inverse` 是两个重要的概念,它们主要用于管理对象之间的持久化关系,特别是涉及到一对一(one-to-one)、一对多(one-to-many)和多对多(many-to-many)关系时。这两个属性都...

    关于cascade和inverse属性[文].pdf

    在软件网络技术领域,尤其是在使用Hibernate这种对象关系映射(ORM)框架时,理解和正确使用`cascade`和`inverse`属性至关重要。这两个属性主要用于管理对象之间的关联关系,特别是如何在数据库中维护这些关系。 ...

    关联映射cascade,inverse讲解

    本篇将深入讲解“cascade”和“inverse”这两个重要的概念,以及它们在实际应用中的作用。 首先,让我们理解一下“关联映射”。在Hibernate中,关联映射允许我们将Java对象与数据库表的记录进行关联。例如,一个...

    hibernate集合映射inverse和cascade详解.txt

    `inverse`和`cascade`属性是Hibernate集合映射中非常重要的概念,它们帮助开发者更灵活地控制实体之间的关系以及操作的级联行为。合理地使用这两个属性,不仅可以简化代码,还能提高程序的性能和健壮性。然而,不当...

    级联增删改查

    首先,"级联"(Cascade)操作是在数据库关系模型中,当对一个表中的记录进行添加、删除或修改时,会影响到与其相关的其他表中的记录。例如,在一对多或者多对多的关系中,如果删除了一个父记录,而这个父记录与多...

    Hibenate cascade

    在Hibernate中,`cascade`和`inverse`是两个重要的概念,它们涉及到对象之间的关系管理和数据持久化。 **1. Hibernate Cascade** `cascade`属性主要用于控制对象间的级联操作。当在主对象上执行保存、更新、删除等...

    Hibernate级联操作.docx

    在 Hibernate 中,级联操作(Cascade)和反向属性(Inverse)是管理对象关系的重要概念,特别是在处理一对多(One-to-Many)或多对一(Many-to-One)关系时。 **级联操作(Cascade)** 级联操作定义了当主对象被...

    JavaEE学习笔记之Hibernate表关系之一对多(inverse详解)

    6. **最佳实践**:在实际开发中,应根据业务逻辑合理设置`inverse`,避免过度依赖`inverse="true"`,因为它可能导致代码难以理解和维护。同时,确保理解`inverse`和`cascade`的组合使用,以防止意外的数据修改。 综...

    inverse=true的总结

    6. 工具应用:在实际开发中,理解并正确使用`inverse=true`能够提高代码的可维护性和性能。开发者应根据业务需求,谨慎选择关联的维护方,并合理配置级联操作,以达到最佳的数据操作效果。 总结,`inverse=true`是...

    Hibernate 一对多、多对一、级联、加载、反转

    例如,如果在`User`和`Order`的关系中,我们希望由`User`来控制级联操作,可以将`@OneToMany`的`mappedBy`属性设在`User`上,然后设置`inverse`属性为`true`,使得`User`成为关系的主控方,这样在处理`User`时,级联...

    java开始面试的第27天.doc

    `inverse="true"` 指定了关系的维护方为多方(Service),意味着 Service 对象的修改会反映到 Account 对象上。`cascade="all"` 指定了级联操作的类型,这里是全部操作。`&lt;key&gt;` 标签内的 `...

    hibernate_配置cascade_及all-delete-orphan.doc

    在使用Hibernate时,正确选择和配置cascade选项对于高效地管理和维护实体之间的关系至关重要。通过了解不同选项的特点和应用场景,开发人员可以更加灵活地应对各种业务需求,同时也能够有效地避免潜在的数据一致性...

    3.Hibernate 03 表关系详细教案1

    - `Cascade`和`Inverse`属性可以分别在Java注解或XML配置中设置,以控制关系的级联操作和维护责任。 总结,本教程详细介绍了Hibernate中表关系的映射,包括不同关系的配置、`Cascade`和`Inverse`属性的使用,以及...

    Hibernate常见问题

    3. **cascade和inverse的区别**:`cascade`关注的是对象之间的操作传递,而`inverse`关注的是关系的维护。`cascade`决定了一个对象的变更是否会影响到其他关联对象,`inverse`则决定了关系的维护责任在哪个对象。 4...

Global site tag (gtag.js) - Google Analytics