假设Customer和Orders 建立一对多的双向关联.

inverse 属性:

//加载持久化对象

Customer customer = (Customer) session.load(Customer.class, new Integer(2));

Orders order = (Orders) session.load(Orders.class,new Integer(2));

//建立关联

order.setCustomer(customer);

customer.getOrders().add(order);

因为Hiberante 自动清理缓存中的持久化对象,按持久化状态的改变来同步更新数据库.所以尽管上面的代码只修改了

orders表中的一条记录但 还是会执行两条update 语句 ,因为内存中的持久化对象的状态发生了两次改变.

而这种多余的sql语句会影响性能.解决这种问题的办法是 把 inverse属性的值设置为 true .

总结:

影射一对多的双向关联时,因该把 one 方的inverse属性值设置为 true .

建立两个对象的双向关联时应该同时修改关联两端的属性.

cascade 属性:

当属性值为

save-update : (级联保存) 时,表明保存或更新当前对象时会级联保存或更新他所关联的对象.

delete :(级联删除)  级联删除所关联的对象.

all-delete-orphan : 自动删除不再和 父对象关联的子对象.并且 在出现上面两种情况时执行上面两种的功能.

可以说是一个全自动的属性值.

一般情况下,当关联双方存在父子关系.就可以把父方的cascade 属性值设置为all-delete-orphan.

父子关系: 由父方来控制子方的生命周期.子对象必须和一个父对象关联.子对象不可孤立存在.

转载于:https://www.cnblogs.com/aijava/archive/2008/04/14/2191888.html

Hibernate中的inverse属性和cascade属性相关推荐

  1. Hibernate中inverse属性与cascade属性

    Hibernate集合映射中,经常会使用到"inverse"和"cascade"这两个属性.对于我这样,Hibernate接触不深和语文水平够烂的种种因素,发现 ...

  2. Hibernate中常用对象、方法、属性的理解

    对象:session 属性: 方法: 转载于:https://www.cnblogs.com/dgyw/p/5762236.html

  3. hibernate mysql cascade_Hibernate第五篇【inverse、cascade属性详解】

    前言 上一篇博文已经讲解了一对多和多对一之间的关系了,一对多和多对一存在着关联关系(外键与主键的关系).本博文主要讲解Inverse属性.cascade属性.这两个属性对关联关系都有影响 Invers ...

  4. Hibernate第五篇【inverse、cascade属性详解】

    前言 上一篇博文已经讲解了一对多和多对一之间的关系了,一对多和多对一存在着关联关系(外键与主键的关系).本博文主要讲解Inverse属性.cascade属性.这两个属性对关联关系都有影响 Invers ...

  5. (转)Hibernate框架基础——cascade属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52760010 我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的 ...

  6. Hibernate框架基础——cascade属性

    我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的员工且inverse属性为false,那么由于可以维护关联关系,它就会先把关联的员工的外键列设为null值,再删除自己. ...

  7. Hibernate【inverse和cascade属性】知识要点

    Inverse属性 Inverse属性:表示控制权是否转移.. true:控制权已转移[当前一方没有控制权] false:控制权没有转移[当前一方有控制权] Inverse属性,是在维护关联关系的时候 ...

  8. 在 Hibernate 中inverse的属性

    hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的. inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联 由对方控制. 见例子 ...

  9. Hibernate建立关系配置(hbm.xml)bag中cascade属性

    cascade属性的可能值有 all: 所有情况下均进行关联操作,即save-update和delete. none: 所有情况下均不进行关联操作.这是默认值. save-update: 在执行sav ...

最新文章

  1. oc35--自定义构造方法
  2. ASP.NET WebForm中用async/await实现异步
  3. 改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降
  4. STM32 高速定时器配置为PWM使用细节
  5. 模糊综合评价法及Python实现
  6. 计算机专业英语第五版课文翻译,计算机专业英语教程(第5版)翻译完整版
  7. 微信好友只有昵称没有微信号_没微信号能找到人吗 只有微信昵称怎么找人
  8. 漏洞四处,苹果电脑也不再安全?(转)
  9. This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
  10. 王菲 单行道 今天忽然听
  11. 【leetcode】Reaching Points
  12. 服务器root权限安全策略配置
  13. 【顺序栈】32 顺序栈ADT模板简单应用算法设计:火车调度
  14. 解决PL2303TA不支援WINDOWS 11及后续版本的问题
  15. python自动化脚本常用方法小结
  16. [乡土民间故事_徐苟三传奇]第三回_小苟三巧施放鱼计
  17. 无线鼠标时好时坏怎么办
  18. 2022系统分析师考试---选择题计算题型
  19. Mac版微信内存飙升卡死解决办法
  20. 企业应该做的体系认证

热门文章

  1. mysql 慢查询 不重启_开启mysql慢查询日志,不重启数据库的方法
  2. pandas python2.7_python-2.7 – Pandas Seaborn安装
  3. oracle 合并重复数据_三天三夜整理出来的数据库常见的面试题,让你直接拿走...
  4. Sublime Text 2快捷键大全
  5. 1025 反转链表 (25 分)(c语言)
  6. ajax跨域时使得后台的sessionid不断地的变化,以及layui表格支持跨域的方法,java
  7. Keil4编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code
  8. 湖南大学第十四届ACM程序设计新生杯(重现赛)- FFind the AFei Numbers(数位dp)
  9. mysql一个用户SQL慢查询分析,原因及优化
  10. 增加外键时候的一个小错误