hibernate 映射四多对一双向映射

学生和班级的例子来说,多个学生可以对应一个班级。

1.站在学生角度来说,学生就是多端。那么我们可以通过多对一来维护2者的关系。

2.站在班级的角度来说,班级就是一端。那么我们可以通过一对多啦维护2者的关系。

3.我们也可以双向关联两者的关系。(这个要牵涉到了反转)

 

无论是多对一还是一对多,最终生成的数据库的表中,都会在多的一端增加了一个外键来关联一的一端。

 

首先先站在学生的角度上 多对一:

最终生成的数据库:

 

下面是多对一映射中的字段意思:

 

一对多中:

 

生成的表结构和多对一 一样。

保存的时候,先保存一端,然后保存多端。也就是先保存student,然后保存clazz。

但是这样会造成一个问题,因为student中会多一个字段cid,但是保存student 的时候我们操作的是对象而不是数据库

发后台的语句:
 //保存student
 Hibernate: insert into Student (name, sex, age) values (?, ?, ?)  //并没有插入cid的值,这也是为什么student的cid配置不能为null的原因。


 //保存class
 Hibernate: insert into Clazz (name) values (?)
 
 //commit的时候会发送更新语句。
 Hibernate: update Student set cid=? where id=?

所以我们不建议使用一端来维护多端。所以我们这就出现了反转,把维护的工作交给了多端来维护。保存,修改,删除,都由多端来维护。

所以在一端我们就可以加入  <set name="student" inverse="true">

inverse="true"是双向关联的概念,使用了这个,再进行一端维护多段是不能关联cid的。所以就必须用多端维护。

 

下面就是双向关联:

 

 这样,这样进行保存的时候,只能先保存一端然后再保存多端。反之操作cid将不会update,cid也就不会有值。

 

反向工程:

点击finish就可以了.

 

关于fetch,以后详细再说。

 

 

 

 

转载于:https://www.cnblogs.com/RanNing/p/3472257.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS factory

http://my.oschina.net/jbryan/blog/140647转载于:https://www.cnblogs.com/zhongqiu/p/3472472.html

django mysql 表单_Python Django 表单提交数据到mysql并展示

首先1&#xff1a; 新建项目userproject&#xff0c; 新建应用childName2&#xff1a; 这是childName文件目录&#xff0c;templates文件夹放insert.html 与 show.html3&#xff1a; insert.html 与 show.html/**insert.html**/用户登录12345678910111213141516Title信息展示用…

java h5 上拉加载更多_移动端H5页面上拉加载更多功能实现(二)

之前已经写过一篇关于上拉加载更多的文章&#xff0c;那个主要是根据滚动实现分页向后台发起请求实现。这次实现方式为后台返回所有需要加载的数据&#xff0c;前端这边做视觉上的分页效果。实现原理也是根据滚动距离触发加载更多的条件。我这边的需求是需要在模态框里实现一个…

体验最火的敏捷——SCRUM(厦门,2014.1.4)

1.概述SCRUM是当前最火的一种敏捷开发方法&#xff0c;有用户故事、冲刺、燃尽图等很多很酷的玩法&#xff0c;有牛B的产品负责人、SCRUM Master&#xff0c;有超强的自组织团队。本沙龙将为您展现当前最火最酷的敏捷开发方法&#xff01;内容大纲&#xff1a;1)SCRUM是神马东西…

摆脱困境:将属性值注入配置Bean

Spring Framework对将从属性文件中找到的属性值注入到bean或Configuration类中提供了很好的支持。 但是&#xff0c;如果将单个属性值注入这些类中&#xff0c;则会遇到一些问题。 这篇博客文章指出了这些问题&#xff0c;并描述了我们如何解决它们。 让我们开始吧。 如果使…

js编码java解码_js编码

虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输&#xff0c;解决了页面编码不一至导致的乱码问题。例如&#xff1a;发送页与接受页的编码格式(Charset)不一致(假设发送页面是…

淘宝IP地址查询

官方网址&#xff1a;http://ip.taobao.com/index.php 相关文章&#xff1a; http://www.cnblogs.com/zetee/p/3482085.html http://www.cnblogs.com/zetee/p/3481297.html转载于:https://www.cnblogs.com/AloneSword/p/3483176.html

mysql查询各专业人数_查询各专业的学生数。

【简答题】查询“数据库”不及格的学生的学号和成绩。【判断题】螺位错可以攀移。【单选题】Internet 的核心协议是()【单选题】多媒体计算机是指()【单选题】码组10100与10001之间的码距为( )。【简答题】查询选修了“计算机基础”课程的学生学号和成绩。【单选题】小强用数码…

[SharePoint][SharePoint2013循序渐进]SPS2013简介

本章概要&#xff1a; 1、啥是SPS2013 2、SharePoint如何作用于团队协作和信息共享 3、SP2013有哪些用户权限 4、什么是SharePoint2013 online 5、SP在内部署和在线订阅计划的区别 6、office集成 7、与Microsoft Dynamics AX集成提供一个web前端界面 【什么是SharePoint2013】 …

python怎么改目录_如何查看文件,而不是使用Python进行更改的目录?

问题&#xff1a;How do I watch a file for changes using Python?建议使用看门狗,但我发现它只能观看目录,而不是文件.watchdog-test.py是看门狗的示例脚本&#xff1a;$python watchdog-test.py ab_test_res.sh &[1] 30628fbtfbt64:~/laike9m$Traceback (most recent c…

javascript arguments

此文为转载文章&#xff1a; 什么是arguments arguments 是是JavaScript里的一个内置对象&#xff0c;它很古怪&#xff0c;也经常被人所忽视&#xff0c;但实际上是很重要的。所有主要的js函数库都利用了arguments对象。所以agruments对象对于javascript程序员来说是必需熟悉的…

hutool 自定义excel_Hutool Java 工具类库导出 Excel,超级简单!

前言在开发应用系统的时候&#xff0c;导出文件是必不可放的功能。以前用过POI、easyexcel等工具的导入导出功能&#xff0c;但总感觉太麻烦了&#xff0c;代码特别多&#xff0c;感觉并不是很好用。今天给大家介绍一款新工具&#xff0c;java工具类库Hutool。Hutool简介Hutool…

带头结点头部插入创建链表

/*创建一个带头结点的链表&#xff0c;头部插入法创建*/ #include<stdio.h> #include<stdlib.h>#define DataType chartypedef struct node {DataType data;struct node *next; }ListNode,*LinkList;/*创建一个带头结点的链表*/ LinkList createLinkList() {char c…

Java性能调优:充分利用垃圾收集器

JVM背后发生了什么&#xff0c;垃圾回收如何影响Java性能&#xff1f; 性能调优世界是一个危险的地方&#xff0c;一个JVM标志失衡&#xff0c;事情很快就会变得繁琐。 因此 &#xff0c;我们决定求助于Java性能调优专家&#xff0c; 单调 JVM探查器mjprof的创建者Haim Yadid …

[单选]物联网产业链的主要产品不包括下列哪一项 - 关于物联网(主讲:柳毅)笔记...

[单选]物联网产业链的主要产品不包括下列哪一项 转载于:https://www.cnblogs.com/scgw/p/3488452.html

java web读取excel_JavaWeb使用POI操作Excel文件实例

1.为项目添加POI点进去之后下载(上边的是编译好的类&#xff0c;下边的是源代码)解压文件夹&#xff0c;把下面三个文件复制到WebComtent>WEB-INF>lib文件夹下再把这三个文件复制到Tomcat的lib文件夹下&#xff0c;否则Tomcat会因为找不到类而报错(这个地方郁闷了一上午)…

架构大型企业Java项目–我的虚拟JUG会话

昨天我很荣幸被邀请参加虚拟JUG 。 这是一个很大的荣誉&#xff0c;其原因有很多&#xff1a;首先&#xff0c;我是vJUG董事会的一员&#xff0c;其次&#xff0c;因为这是我第二次向这个对Java感兴趣的伟大团队做演讲。 被邀请回来总是很高兴的。 架构大型企业Java项目 过去&…

javascript操作cookie

1. 什么是cookie&#xff1f; Cookie就是浏览器保存在计算机上面的一下信息。一般是保存用户登录状态&#xff0c;就是说Cookie会保存用户登录某个网站的信息在本地&#xff0c;下次这个用户访问网站的时候会自动取出他的Cookie信息&#xff0c;方便定制用户想要的内容。2. 实例…

java 静态方法与实例方法的区别_静态方法与实例方法的区分

Java系列之&#xff1a;看似简单的问题 静态方法和实例化方法的区别Java程序启动class文件被读取时类被加载&#xff0c;如果有static方法&#xff0c;此时会分配内存&#xff0c;非static方法实例化类时才在内存中分配控件存储&#xff0c;引用存储在堆栈中&#xff0c;实体存…

使用wrapper将java程序注册程windows服务后不生效

使用wrapper将java程序注册程windows服务后不生效 使用add.bat或test***.bat测试通过了&#xff0c; 然后使用install***.bat注册后cmd显示注册成功。 但是程序到了运行时间就是不运行&#xff01;&#xff01; 解决办法 控制面板 ---> 管理工具 ---> 服务&#xff0c;找…