Hibernate中的inverse属性和cascade属性
假设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属性相关推荐
- Hibernate中inverse属性与cascade属性
Hibernate集合映射中,经常会使用到"inverse"和"cascade"这两个属性.对于我这样,Hibernate接触不深和语文水平够烂的种种因素,发现 ...
- Hibernate中常用对象、方法、属性的理解
对象:session 属性: 方法: 转载于:https://www.cnblogs.com/dgyw/p/5762236.html
- hibernate mysql cascade_Hibernate第五篇【inverse、cascade属性详解】
前言 上一篇博文已经讲解了一对多和多对一之间的关系了,一对多和多对一存在着关联关系(外键与主键的关系).本博文主要讲解Inverse属性.cascade属性.这两个属性对关联关系都有影响 Invers ...
- Hibernate第五篇【inverse、cascade属性详解】
前言 上一篇博文已经讲解了一对多和多对一之间的关系了,一对多和多对一存在着关联关系(外键与主键的关系).本博文主要讲解Inverse属性.cascade属性.这两个属性对关联关系都有影响 Invers ...
- (转)Hibernate框架基础——cascade属性
http://blog.csdn.net/yerenyuan_pku/article/details/52760010 我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的 ...
- Hibernate框架基础——cascade属性
我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的员工且inverse属性为false,那么由于可以维护关联关系,它就会先把关联的员工的外键列设为null值,再删除自己. ...
- Hibernate【inverse和cascade属性】知识要点
Inverse属性 Inverse属性:表示控制权是否转移.. true:控制权已转移[当前一方没有控制权] false:控制权没有转移[当前一方有控制权] Inverse属性,是在维护关联关系的时候 ...
- 在 Hibernate 中inverse的属性
hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的. inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联 由对方控制. 见例子 ...
- Hibernate建立关系配置(hbm.xml)bag中cascade属性
cascade属性的可能值有 all: 所有情况下均进行关联操作,即save-update和delete. none: 所有情况下均不进行关联操作.这是默认值. save-update: 在执行sav ...
最新文章
- oc35--自定义构造方法
- ASP.NET WebForm中用async/await实现异步
- 改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降
- STM32 高速定时器配置为PWM使用细节
- 模糊综合评价法及Python实现
- 计算机专业英语第五版课文翻译,计算机专业英语教程(第5版)翻译完整版
- 微信好友只有昵称没有微信号_没微信号能找到人吗 只有微信昵称怎么找人
- 漏洞四处,苹果电脑也不再安全?(转)
- This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
- 王菲 单行道 今天忽然听
- 【leetcode】Reaching Points
- 服务器root权限安全策略配置
- 【顺序栈】32 顺序栈ADT模板简单应用算法设计:火车调度
- 解决PL2303TA不支援WINDOWS 11及后续版本的问题
- python自动化脚本常用方法小结
- [乡土民间故事_徐苟三传奇]第三回_小苟三巧施放鱼计
- 无线鼠标时好时坏怎么办
- 2022系统分析师考试---选择题计算题型
- Mac版微信内存飙升卡死解决办法
- 企业应该做的体系认证
热门文章
- mysql 慢查询 不重启_开启mysql慢查询日志,不重启数据库的方法
- pandas python2.7_python-2.7 – Pandas Seaborn安装
- oracle 合并重复数据_三天三夜整理出来的数据库常见的面试题,让你直接拿走...
- Sublime Text 2快捷键大全
- 1025 反转链表 (25 分)(c语言)
- ajax跨域时使得后台的sessionid不断地的变化,以及layui表格支持跨域的方法,java
- Keil4编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code
- 湖南大学第十四届ACM程序设计新生杯(重现赛)- FFind the AFei Numbers(数位dp)
- mysql一个用户SQL慢查询分析,原因及优化
- 增加外键时候的一个小错误