hibernate 一对多关系映射 笔记

(经典)Hibernate的一对多关系映射(三) 一对多关系是表提出来的概念,两张表之间会存在这种,前提是有外键关联。 例如:省份和城市 如果设计类,怎样描述省份和城市之间的一对多关系 省份类里包含多个城市对象,使用 Set集合来描述 城市类里包含一个省份对象。 使用Hibernate开发时,如果表中存在一对多关系,而且这些表一起选择生成映射,则会自动生成包含一对多关系的类。 这里建立两张表(省份和城市) [sql] v 阅读详情

hibernate 一对多关系映射(单向classes--->student)

一对多映射原理,利用了多对一映射原理

多对一映射原理:在多的一端加入一个外键指向一的一端,它维护的关系多指向一
一对多映射原理,在多的一端加入一个外键指向一的一端,她维护的关系是一指向多

也就是说一对多与多对一的映射原理是一样的,只是站的角度不一样

在一的一端维护的缺点:
 * 如果将student表里的classesid设为非空,则无法保存;
 * 因为不是在student端维护数据,所以student端不知道学生是哪个班的
 * 所以需要发出多余的update语句来更新关系;
 
 
hibernate 一对多关系映射(双向classes<--->student)

一对多双向关联映:
 * 在一的一端的集合上使用<key>,在对方表中加入一个外键指向一的一端;
 * 在多一端采用<many-to-one>
 
注意:key标签指定的外键字段必须和<many-to-one>指定的外键字段一致,否则引用字段错误;

如果在一的一端维护一对多关联关系,hibernate会发出多余的Update语句,多以我们一般在多的一端维护关联关系


关于inverse属性;
 inverse主要用在一对多,多对对双向关联上,inverse可以设置到<set>集合上,
 默认inverse为false,所以我们可以从一的一端和多的一端来维护关联关系,
 如果inverse为true,我们只能从多的一端来维护关联关系,
 
 注意:inverse属性,只影响存储(使存储方向转变),即持久化,
 
inverse和cascade
 * inverse(反转)是关联关系的控制方向
 * cascade(级联)操作上的连锁反映

 

xxx.hbm.xml文件设置

 <class name="com.gzbb.hibernate.student.Classes">
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  <set name="student"  inverse="true" cascade="all">
   <key column="classesid"/>
   <one-to-many class="com.gzbb.hibernate.student.Student"/>
  </set>
 </class>
 

 <class name="com.gzbb.hibernate.student.Student">
 
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  <many-to-one name="classes" column="classesid"/>
 </class>

 

 

 

 


 

深入理解Hibernate一对多映射案例分析 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它使得Java开发者可以更方便地将对象模型映射到关系型数据库。在现代Java应用程序中,Hibernate扮演了数据持久层的核心角色,通过减少数据库操作的复杂性,让开发人员能够专注于业务逻辑的实现。一对多关系在数据库中的表现形式通常通过外键来实现。外键是一个表中的字段,它指向另一个表的主键。这种机制保证了数据的完整性并建立了不同表之间的关联。例如,在学生和课程的数据模型中,一个学生可以选修多门课程,而每门课程可以被多个学生选修。 阅读详情

相关推荐

设置Solidworks导出文件的坐标系,stl坐标系平移

使用solidworks输出的模型坐标不再原点,怎么平行坐标系,这个方法很简单

weixin_45650767的博客 1万+

Hibernate笔记=>一对多关系的映射

Many与One的双向性 以Customer与Order为例,一个Customer可能会发出多个Order,从Costomer到Order是一对多的关联,一般来说在Customer类中会有一个Order的list或set来描述这一关系。而从Order到Customer则是多对一的关联,一般在每个Order对象中定义一个Customer类型的变量来引用所关联的Customer对象。 如果

熊孩子会撒野 624

Mellanox CX7网卡搭配400G光模块实战:从选型到部署的完整指南

本文详细解析了Mellanox CX7网卡与400G光模块的选型策略与部署实践,涵盖硬件对比、兼容性验证及性能调优。重点介绍了OSFP光模块的选择要点和常见问题排查方法,帮助用户构建高性能网络基础设施,适用于AI训练、金融交易等场景。

efc1234567的博客 1289

Hibernate学习笔记(四) — session的产生方式 与 一对多关系映射

一、session的创建 Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一个SessionFactory并从中获取Session实例,但Session不是线程安全的。 每次openSession,产生的都是一个新的session,相当于创建一个新的连接。但是有很多时候,并不希望这样。比如在淘宝购物,

NotPerfect-EOF 2277

慕课软件质量保证与测试(习题集)

慕课金陵科技学院.软件质量保证与测试.期末复习.习题汇总0 总目录1 绪论1.1 软件质量保证与测试的产生与发展1.2 软件缺陷,软件错误,软件故障1.3 软件质量保证与测试的意义,原则和挑战1.4 单元测试1.5 课后作业2 软件测试策略2.1 软件测试的模型,过程和生命周期2.2 软件测试的方法和技术2.3 单元测试2.4 课后作业3 黑盒测试3.1 黑盒测试概述3.2 等价类划分测试3.3 边界值测试3.4 错误推测法3.5 判定表驱动法3.6 因果图法3.7 场景法3.8 正交实验法3.9 单元测试

weixin_42473228的博客 5万+

防火墙旁挂组网

分析拓扑结构,涉及路由器、交换机、防火墙。步骤包括基础 IP 配置、OSPF、防火墙双机热备、安全策略等。第一步,路由器配置。R5、R6 连接 ISP 和核心交换机,配置接口 IP,然后 OSPF。然后防火墙,双机热备的 HRP、VRRP,还有安全策略。接着交换机,划分 VLAN,配置 TRUNK,加入 OSPF。

weixin_73298423的博客 901

Hibernate学习笔记 -- day08 注解含义、一对多关系映射

一、

wingzhezhe的博客 417

RK3568 开发实战:手动构建 Linux 4.19 内核镜像与设备树优化

本文详细介绍了为RK3568开发板手动编译Linux 4.19内核的完整实战流程。从环境搭建、源码获取、内核配置,到设备树深度定制与优化,再到镜像打包与烧写,旨在帮助开发者脱离官方SDK依赖,实现对嵌入式Linux系统的完全掌控,提升硬件适配与性能优化能力。

weixin_29175469的博客 269

Hibernate对象关系映射详解之一对多关系映射

Hibernate对象关系映射详解之“一对多”关系映射 之前学习Hibernate框架的时候,对这七大关系映射一直是云里雾里的,虽然可以仿照写出代码,但是不能独立编写出来。鉴于工作中这个知识点使用的几率还是非常大的,所以花了一点时间静下心来学习了一下,在这里写下一点学习笔记和大家交流。欢迎大家指点交流!(下面的笔记以及所有的示例都是使用注解) 我理解的关联映射就是将关联关系映射到数据库

程序猿的故事 9230

Lenovo 拯救者15ISK硬件升级实战:从内存到固态硬盘的全面优化

本文详细介绍了为联想拯救者15ISK笔记本电脑进行硬件升级的完整实战指南。通过评估升级可行性,指导如何挑选兼容的内存条与NVMe固态硬盘,并提供详细的拆机安装步骤与系统安装避坑技巧。升级后,笔记本的开机速度、软件加载及多任务处理能力获得飞跃式提升,让老旧设备重获新生。

weixin_29310631的博客 554

51单片机IAP在线升级

51单片机IAP在线升级 爱矽半导体E85F3325单片机IAP在线升级教程,此处可查看更新及demo下载 文章目录前言一、ROM资源二、KEIL有关知识1.BL51连接器:2.LX51连接器:三、Keil其他相关项说明:四、MCU启动文件说明:五、例程BOOTLOADER使用说明六、例程使用可更改说明:七、程序使用通信方式:XMODEM八、APP程序说明九、APP代码升级说明十、代码合并烧写 前言 扩展-IAP 主要用于产品出厂后应用程序的更新作用 ,类似于其他引导装载升级程序的方法,在系统中必须始终

qq_42415953的博客 6666

Hibernate中的一对多关系映射

Hibernate框架中关系映射中有:一对一、一对多和多对多,但常用的就是一对多,所以本篇博客就大体概述了一下一对多关系映射。 一对多关系: 例如:客户和订单,客户是一,订单是多 创建customers、orders数据表 在多方添加一方的外键 (在orders表添加customer_id) 建立多对一关系映射  : 在 Order.hbm.xml 配置&lt;m...

越是憧憬,越要风雨兼程 2116

SLAM Cartographer(18)后端优化问题求解器

了解经过闭环检测构建了子图与节点之间的约束之后,通过后端优化求解器进行优化求解。核心是基于Ceres库进行SPA(Sparse Pose Adjustment)的优化方法,把后端优化问题描述成为一个最小二乘的问题求解

氢键H-H 5679

一对多关系映射

两张表之间如果存在外键,就会出现一对多关系(外键不能同时是主键) 如果想使用pojo类来表示一对多关系,这里以省份和城市为例: 省份类中应该包含多个城市的对象,一般默认使用Set集合表示某个省份下多个城市 城市类中应该包含一个省份的对象。   如果在表中存在外键,且使用MyEclipse一起选择两张表生成映射,则会自动生成出一对多关系。 先建立省份和城市表。 CR

Hi~Future 856

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SSH学习(十二)Hibernate一对多关系映射

搬砖工版权所有,如需转载请注明出处 Java基础专栏请戳这里http://blog.csdn.net/column/details/14176.html 博主SSH框架专栏请戳这里http://blog.csdn.net/column/details/14227.html 前面几篇文章分别讲述了Hibernate的基础知识、常见用法以及配置信息,未读过的同学可以点击链接到博主的专

代码搬运工 1837

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hibernate一对多关系映射

文章目录关联关系一对多实战操作 关联关系 什么是关联? 关联指的是类之间的引用关系。如果类A与类B关联, 那么被引用的类B将被定义为类A的属性。例如: public class A{ private B b = new B; public A(){} } 重点: 我们常见的订单与订单项就是典型的一对多,一个订单对应多个订单项, 搞清这个就关联关系就基本懂 了,如果订单与订单项关联那么被引用的订单项将被定义为订单的属性。 关联的分类 关联可以分为一对一、一对多

qq_45384482的博客 292

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Hibernate中一对多关系的映射配置

上篇内容简单回顾 1、Hibernate的持久化类的编写规则 (1)无参数构造 (2)属性私有 (3)属性尽量使用包装类 (4)提供一个唯一OID与主键对应 (5)不要使用final修饰 2、Hibernate的主键生成策略 主键分类:自然主键,代理主键。 主键生成策略类型: (1)increment (2)identity (3)sequence (4)uuid (5)native (6)assigned (7)foreign 3、Hibernate的持久化类的三种状态 (1)瞬时态:没有唯一标识OI

pipizhen_的博客 280

Hibernate一对多关系映射

第十三章Hibernate一对多关系映射 一对多是在项目开发之中最为常见的一个功能,也就是指在所有的映射里面,一对多设计是首先要思考。例如:现在管理员可以进行新闻的发布,那么一个管理员可以发布多条新闻,这就是一个典型的一对多关系。 范例:数据库创建脚本 -- 使用数据库 USE mldn ; -- 删除数据表 DROP TABLE news ; DROP TABLE

冰点IT的博客 407

hibernate中一对多关系的映射

一、一对多的关系映射建立一对多关系表的原则是将一的一方的主键加入到多的一方的表作为外键。这里以员工和部门为例子来演示。以前不用hibernate时建立pojo类要在员工类Emp中加入一个属性,即部门编号deptid.使用hibernate则不同了,需要在“一”的一方类中加入一个set集合,里面存放“多”的一方的对象。而在“多”的一方的类中需要加入一个“一”方的对象。也就是说在Dept类中需要加入一个

qq_26847293的博客 379

Hibernate多表关联——(一对多关系)

hibernate是连接数据库使得更容易操作数据库数据的一个框架,在上期我们演示了单表建立查询。接触过数据库的都知道数据库表有三种关系,。而接下来我们在hibernate中建立关系,首先应该检查一下数据库是否打开,根据,接下来继续建立表的关系。

闲来垂钓碧溪上的博客 2415

Hibernate入门第十讲——Hibernate的一对多关联映射

Hibernate关联映射——一对多(多对一)我们以客户(Customer)与订单(Order)为例来讲解Hibernate关联映射中的一对多关联关系。 首先肯定是搭建好Hibernate的开发环境,我在此也不过多赘述,读者自行实践。接着在src目录下创建一个cn.itheima.oneToMany包,并在该包下创建两个实体类,如下: 客户类// 客户 ---- 一的一方 public class

李阿昀的博客 1万+

hibernate map简单实现一对多关系映射

首先引题,现在有学生(1)成绩(多)两张表,要求使用hibernate关系映射(xml方式)建立它们之间的一对多关系。并且使用map更新学生的成绩 首先建立实体类 Student.java package entities; import java.util.Date; import java.util.HashMap; import java.util.Map; /* 变量依次为:学号、姓名、...

阿福的时光机 423

hibernate的一对多关系映射

由于表和表之间存在多种关系 一对一 一对多 多对多 如何建表 在hibernate中如何用类实现 一对一: class A{ B b; } class B { A a; } 一对多: class A { Set&lt;B&gt; bs; } class B{ A a; } 多对多: class A{ Set&lt;B&gt; bs; } class A{ Set&lt;...

qq_40435621的博客 208
上一篇: 用户管理系统流程分析
下一篇: j2ee开发常用开发工具网址集
欧德曼
博客等级 码龄19年 63粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值