`
lijun87
  • 浏览: 269252 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

inverse和cascade的区别

阅读更多

1.inverse属性:inverse所描述的是对象之间关联关系的维护方式。
  
inverse只存在于集合标记的元素中。Hibernate提供的集合元素包括<set/> <map/> <list/> <array /> <bag />
  
Inverse属性的作用是:是否将对集合对象的修改反映到数据库中。
  
inverse属性的默认值为false,表示对集合对象的修改会被反映到数据库中
  
inverse=”true”  表示对集合对象的修改不会被反映到数据库中。

 

2.cascade属性
cascade
属性的作用是描述关联对象进行操作时的级联特性。因此,只有涉及到关系的元素才有cascade属性。
具有cascade属性的标记包括<many-to-one /> <one-to-one /> <any /> <set /><bag /> <idbag /> <list /> <array />
注意:<ont-to-many /> <many-to-many />是用在集合标记内部的,所以是不需要cascade属性的。
级联操作:指当主控方执行某项操作时,是否要对被关联方也执行相同的操作。

3.inverse
cascade的区别
作用的范围不同:
     Inverse
是设置在集合元素中的。
   Cascade
对于所有涉及到关联的元素都有效。
   <many-to-one/><ont-to-many/>
没有inverse属性,但有cascade属性
执行的策略不同
   Inverse
会首先判断集合的变化情况,然后针对变化执行相应的处理。
   Cascade
是直接对集合中每个元素执行相应的处理
执行的时机不同
     Inverse
是在执行SQL语句之前判断是否要执行该SQL语句
     Cascade
则在主控方发生操作时用来判断是否要进行级联操作
执行的目标不同
     Inverse
对于<ont-to-many><many-to-many>处理方式不相同。
  
对于<ont-to-many>inverse所处理的是对被关联表进行修改操作。
  
对于<many-to-many>inverse所处理的则是中间关联表
     Cascade
不会区分这两种关系的差别,所做的操作都是针对被关联的对象。

总结:
<one-to-many>
中,建议inverse=”true”,由“many”方来进行关联关系的维护
<many-to-many>
中,只设置其中一方inverse=”false”,或双方都不设置
Cascade
,通常情况下都不会使用。特别是删除,一定要慎重。

分享到:
评论

相关推荐

    hibernate inverse和cascade的详细讲解

    ### Hibernate Inverse 和 ...通过以上内容的介绍,我们不仅理解了`inverse`和`cascade`的基本概念及其应用场景,还了解了它们之间的区别。在实际开发中,合理地利用这两个属性能够极大地提高系统的性能和稳定性。

    inverse和cascade使用阐述

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

    Hibernate中Inverse和Cascade的区别.html

    Hibernate中Inverse和Cascade的区别.html

    NHibernate Inverse & Cascade

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

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

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

    Hibernate中cascade和inverse应用

    cascade 和 inverse 的区别** - `cascade` 关注的是对象之间的操作传播,它定义了如何在操作一个对象时影响其关联对象。 - `inverse` 则关注的是关系的维护,它决定了关联关系的哪一侧负责在数据库中创建或删除...

    Hibernate中cascade与inverse属性详解

    Hibernate中cascade与inverse属性详解

    hibernate 级联(cascade和inverse)一对多

    在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...

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

    `cascade`和`inverse`的区别在于,`cascade`关注的是对象间的操作传播,而`inverse`关注的是哪个对象负责关系的更新。`cascade`作用于整个关联集合,不论集合是否为空,而`inverse`只影响集合本身,不涉及集合内的...

    关联映射cascade,inverse讲解

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

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

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

    Hibenate cascade

    Cascade 和 Inverse 的区别** `cascade`关注的是对象操作的传播,即当操作一个对象时,是否影响其关联的对象。而`inverse`关注的是哪个对象负责维护关系表。`cascade`是关于操作的传播,而`inverse`是关于关系维护...

    inverse 例子

    首先,`inverse`属性主要应用于一对多(OneToMany)和多对一(ManyToOne)的关系映射中。默认情况下,Hibernate假设一方(通常是一对多的那一方)负责维护关联关系,也就是说,当这一方的对象被保存或更新时,它会...

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

    同时,确保理解`inverse`和`cascade`的组合使用,以防止意外的数据修改。 综上所述,理解并正确使用Hibernate中的`inverse`属性对于优化JavaEE应用的数据库操作和提高代码质量具有重要意义。通过深入掌握这一特性,...

    inverse=true的总结

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

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

    &lt;set name="orders" cascade="all-delete-orphan" inverse="true"&gt; ``` 这样,在运行时会执行: ```sql DELETE FROM ORDERS WHERE CUSTOMER_ID = 2 AND ID = 2; ``` #### 四、总结 在使用Hibernate时...

    Hibernate学习

    - **Inverse和cascade区别**:inverse控制哪一方负责关联的维护,而cascade控制关联对象的操作是否级联。 - **一对多双向关联映射总结**:总结一对多双向关联的特点及其应用场景。 #### 多对多关联映射单向(many-...

    hibernate_second3项目源码

    【hibernate_second3项目源码】是一个关于Hibernate框架的示例项目,它着重展示了`inverse`和`cascade`两个重要属性的差异。在Hibernate中,这两个属性对于理解和管理对象关系映射(ORM)中的关联关系至关重要。让...

Global site tag (gtag.js) - Google Analytics