这两个属性都用于一多对或者多对多的关系中。

而inverse特别是用于双向关系,在单向关系中我们并不须要。

 
Cascade代表是否运行级联操作,Inverse代表是否由己方维护关系。
 
Cascade:
 
Cascade属性的可能值有
    all: 全部情况下均进行关联操作,即save-update和delete。

    none: 全部情况下均不进行关联操作。

这是默认值。

    save-update: 在运行save/update/saveOrUpdate时进行关联操作。

    delete: 在运行delete 时进行关联操作。
    all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点。比方在一个一对多的关系中。Student包括多个book。当在对象关系中删除一个book时,此book即成为孤儿节点。

 
Inverse:
 
Inverse属性的可能值是true或者false。默觉得false:
 
     false代表由己方来维护关系,true代表由对方来维护关系。

在一个关系中,仅仅能由一方来维护关系。否则会出问题(解疑中会讲到)。同一时候也必须由一方来维护关系。否则会出现两方互相推卸责任,谁也无论。

 
1、cascade(级联)
   引用了《深入浅出 Hibernate》:级联(cascade)在Hibernate映射关系中。它指的是当主控方运行操作时,关联对象(被动方)是否同步运行同一操作,如主控方对象调用save-update或delete 方法时。是否同事对关联对象(被动方)进行save-update或delete。

  这里所说的主控方按我理解指的是:比方,User 类中有一Address属性。User和Address 是一对多的关系,然后当user.save(address);的时候,user就是主控方了。
 
2、inverse(控制方向反转)
   引用了《深入浅出 Hibernate》:在Hibernate 语义中,inverse指定了关联关系中的方向。关联关系中,inverse=false 的为主动方,由主动方负责维护关联关系。

   这里所说的关联关系按我理解指的是:为了维持两个实体类(表)的关系。而加入的一些属性,该属性可能在两个实体类(表)或者在一个独立的表里面,这个要看这两方直接的相应关系了:
ps:这里的维护指的是当主控放进行增删改查操作时,会同一时候对关联关系进行相应的更新。
   一对多:该属性在多的一方。应该在一方的设置 inverse=true 。多的一方设置 inverse=false(多的一方也能够不设置inverse属性。由于默认值是false),这说明关联关系由多的一方来维护。原因:该关联关系的属性在多的一方的表中。在维护关联关系的时候在多的一方easy维护。
   多对多:属性在独立表中。

在随意一方设置inverse=true,还有一方inverse=false;原因:假设两个多设置为true 的话。表示两方都对关联关系表(独立表)进行了相同的维护,事实上仅仅要一方维护即可了,效率上来说,这样设置是合理点的。

   一对一:事实上是一对多的一个特例,inverse 的设置也是一样的。主要还是看关联关系的属性在哪一方,这一方的inverse=false。

   多对一:也就是一对多的反过来,没什么差别。

hibernate中cascade和inverse的更多相关文章

  1. 具体解释Hibernate中cascade与inverse

    学习hibernate的时候对级联关系的概念老是分不清楚,尤其是cascade.inverse傻傻分不清.以下通过样例来简单说明. 准备工作: 首先创建数据库,新建两张表: 教室表classes (字 ...

  2. 转 Hibernate中cascade和inverse的作用

    Inverse和cascade是Hibernate映射中最难掌握的两个属性.两者都在对象的关联操作中发挥作用.1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反 ...

  3. Hibernate中cascade和inverse的作用

    Inverse和cascade是Hibernate映射中最难掌握的两个属性.两者都在对象的关联操作中发挥作用.1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反 ...

  4. Hibernate中cascade作用

    Hibernate中cascade作用 只有“关系标记”才有cascade属性: 一个操作因级联cascade可能触发多个关联操作.前一个操作叫“主控操作”,后一个操作叫“关联操作”. cascade ...

  5. hibernate中cascade属性以及inverse属性

    级联操作 cascadecascade的常用属性值 none 默认值 不做任何变动 save-update 保存或修改 delete 删除 all 包含save-update 和delete等行为 c ...

  6. java之hibernate之 cascade和inverse

    1.Cascade是级联动作,在many_to_one中如果使用cascade可以级联操作关联对象,如下代码可以级联保存Category对象. 在Book的映射文件设置 <many-to-one ...

  7. Hibernate中cascade属性的区别

    xml对于集合的级联操作属性cascade的取值可以是: none: 不级联操作,默认为none save-update:针对的是当对当前对象进行save或update操作时,要对想关联的对象进行sa ...

  8. Hibernate中的inverse和cascade属性

    Hibernate中的inverse和cascade属性 inverse的值有两种,"true"和"false".inverse="false&quo ...

  9. hibernate中的cascade和inverse

    以Student和class为例,一个Student对应一个class,一个class对应多个Student. Student.hbm.xml <?xml version="1.0&q ...

随机推荐

  1. 【delphi】delphi出现‘尚未调用CoInitialize’异常

    1. 由于使用ado等引起的异常. 2. 若是子线程或某方法操作ado可在该方法开头和结尾分别加上: function myfun begin CoInitialize(nil); // your c ...

  2. iOS应用内支付(IAP)的那些坑

    本文转载至 http://blog.devtang.com/2013/04/07/tricks-in-iap/ 前言 udacity 中的在线课程 <How to build a startup ...

  3. 《Lua程序设计》第7章 迭代器与泛型for 学习笔记

    本章将介绍如何编写适用于泛型for的迭代其(Iterator).7.1 迭代器与closurehttp://www.cnblogs.com/moonlightpoet/p/5685275.html 7 ...

  4. System.Web.Mvc.AJAX缺少程序集引用

    今天在构建新项目的时候,出现这个错误,实际上这个出现过很多次了,但是每次都忘记之前怎么解决的,之前博客也不记得写过没有...

  5. 【swagger学习】.net WebApi中使用swagger

    我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问 ...

  6. 【加解密专辑】对接触到的PGP、RSA、AES加解密算法整理

    先贴代码,有空再整理思路 PGP加密 using System; using System.IO; using Org.BouncyCastle.Bcpg; using Org.BouncyCastl ...

  7. Windows Phone Bing lock screen doesn't change解决方法

    之前一直用的Lumia 925,Bing lock screen每天都会更换.这几天换了Lumia 930,同步了账号相关的设置,发现Bing lock screen不再每天更换.尝试重启.使用cel ...

  8. [Windows]Window 7 修改系统时区

    注意:编码存储为ANSI tzutil /s "China Standard Time"pause

  9. ios三张图片组合一张

    - (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 { UIGraphicsBeginImageContext(imag ...

  10. jenkins中Email Extersion Plugin插件使用说明点

    在jenkins中使用第3方邮件插件Email Extersion Plugin时,根据网上教程,发现每次都没有生成模板 再次查看,发现 $HOME_jenkins下没有templeate文件夹,查阅 ...