Hibernate inverse反转
inverse:
inverse:
指定由哪一方来维护之间的关联关系
false默认,表示不放弃,是主动放
true:表示把关联关系的维护反转(放弃),对集合对象的修改不会被反映到数据库中 容易出现的问题:
如果两端都设置控制反转,就会重复更新,报告联合主键重复的错误
inverse和cascade的区别:
inverse决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用
即只对one-to-many和many-to-one有效
hibernate提供的集合元素包括:<set><map><list><array><properties>
cascade决定是否把对对象的改动反映到数据库中,所以cascade对所有的关联关系都起作用
修改配置文件:
<set name="orders" cascade="save-update, delete" inverse="true">
<key column="customer_id"></key>
<one-to-many class="com.roxy.hibernate.pojo.Order"/>
</set> inverse必须配置在一端 cascade配置在那一端,就保存哪一端
SQL语句与分析:
Hibernate:
insert
into
t_customer
(c_name, c_gender, c_age, c_level)
values
(?, ?, ?, ?) ----- 向customer中插入数据
Hibernate:
insert
into
t_order
(orderno, product_name, customer_id)
values
(?, ?, ?)
----- 向order中插入数据
Hibernate:
insert
into
t_order
(orderno, product_name, customer_id)
values
(?, ?, ?)
----- 向order中插入数据
查看数据库表:


和前一篇博文的结果进行对比: SQL语句并没有在插入数据之后进行更新操作
在向数据库插入数据时,并没有维护customer和order表之间的关联,即order中的外键值为null
在维护两表之间的关系时,可以避免做额外的更新操作
Hibernate inverse反转的更多相关文章
- hibernate的反转引擎生成两个实体类的问题
在使用myeclipse中自带的hibernate 进行jsp开发时候遇到了这个问题.使用hibernate的反转引擎从数据库生成生成实体类,一个表生成了两个类,xx.java和xxId.java . ...
- hibernate inverse属性的作用
hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的.inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联由对方控制.见例子: 一 ...
- Hibernate inverse用法(转载)
出处:http://blog.csdn.net/xiaoxian8023/article/details/15380529 一.Inverse是hibernate双向关系中的基本概念.inverse的 ...
- hibernate:inverse、cascade,一对多、多对多详解
1.到底在哪用cascade="..."? cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或删除对像时更方便一些,只要在cascade的源头上插入或是删除,所 ...
- hibernate inverse属性
修改街道对应的区道信息: 修改后会发现程序执行了两次修改操作: 原因: 区道与街道是一对多的关系: 由于Hibernate是双向维护外键,所以当修改区道中的街道时,会修改一次外键:在修改街道中的区道时 ...
- hibernate -inverse
one to many inverse=false只能设置维护关联关系的多的一方, inverse属性: 默认为false,表示本方维护关联关系. 如果为true,表示本方不维护关联关系(并不意味着对 ...
- 三大框架之hibernate的反转
选择工程.包名 Finish
- java之hibernate之 cascade和inverse
1.Cascade是级联动作,在many_to_one中如果使用cascade可以级联操作关联对象,如下代码可以级联保存Category对象. 在Book的映射文件设置 <many-to-one ...
- hibernate中cascade属性以及inverse属性
级联操作 cascadecascade的常用属性值 none 默认值 不做任何变动 save-update 保存或修改 delete 删除 all 包含save-update 和delete等行为 c ...
随机推荐
- U盘安装电脑系统教程
[怎么使用u盘安装系统.U盘装系统.如何用U盘安装系统.U盘制作系统.U盘引导.U盘启动.U盘量产.安装系统.如何设置U盘启动] 在电脑系统的日常使用中,经常会遇到系统崩溃或重新安装系统的情况,没有光 ...
- 轻松玩转AI 与PDF文件的转化(完美解决字体问题)
经过漫长而坚苦卓绝的研究查阅了网上无数资料下载了众多相关软件进行试验终于,找到搞定PDF文件的方便并且有效的办法PDF文件!你这个魔鬼!退去吧!!!! 难点一: 如何修改客户常常会提供不知道从哪里搞来 ...
- LOJ2542. 「PKUWC2018」随机游走【概率期望DP+Min-Max容斥(最值反演)】
题面 思路 我们可以把到每个点的期望步数算出来取max?但是直接算显然是不行的 那就可以用Min-Max来容斥一下 设\(g_{s}\)是从x到s中任意一个点的最小步数 设\(f_{s}\)是从x到s ...
- java反射机制的作用与优点
java的反射机制就是增加程序的灵活性,避免将程序写死到代码里,例如: 实例化一个 person()对象, 不使用反射, new person(); 如果想变成 实例化 其他类, 那么必须修改源代码, ...
- Python实现不同格式打印九九乘法表
前言:最近在学习Python,学习资源有慕课网上的视频教程.菜鸟教程以及Python官方文档tutorial.虽然了解了Python的基本语法,但是还没有真正意义上输出自己写的代码.代码小白,之前仅学 ...
- Flask第31课——include标签
我们在上一节代码基础上增加一些代码,样式: 文件名index.html,代码: {% from 'macros/forms.html' import input %} <!DOCTYPE htm ...
- Math类的学习 java 类库 API 文档学习
- day25 python学习 继承,钻石继承
通过一个列子认识父类和子类中,子类的如何实现对父类默认属性调用,同时拥有自己的属性,如何在子类中调用父类的方法,class Ainmal: country='afdas' def __init__(s ...
- silverlight 进行本地串口调用的一种可行的解决方法 之silverlight端代码
接上边的文章. 在javascript暴露操作activex 串口接收之后,就是silverlight端进行串口数据的显示,我们的显示方式比较简单,只是为了演示,我们每隔1秒进行数据的获取并显示, 为 ...
- bzoj1072排列
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1072 好像是这方面的裸题. 整除k 要想转移需要记录下 达到模k所有余数 的方案数. 为了生 ...