文档章节

hibernate---->一对多关联映射

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 524
阅读 2
收藏 0

 

一对多关联映射利用了多对一关联映射原理

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

也就是说一对多和多对一的映射策略是一样的,只是站的角度不同

在一端维护关系的缺点:
 * 如果将t_student表里的classesid字段设置为非空,则无法保存
 * 因为不是在student这一端维护关系,所以student不知道是哪个班的,所以需要发出多余的update语句来更新关系

一、hihernate一对多关联映射(单向Classes----->Student)

Classes.hbm.xml

<hibernate-mapping package="com.bjsxt.hibernate">
	<class name="Classes" table="t_classes">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<set name="students">
			<key column="classesid"/>
			<one-to-many class="Student"/>
		</set>
	</class>
</hibernate-mapping>

Student.hbm.xml

<hibernate-mapping>
	<class name="com.bjsxt.hibernate.Student" table="t_student">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
	</class>
</hibernate-mapping>

二、hihernate一对多关联映射(单向Classes----->Student)

Classes.hbm.xml

<hibernate-mapping package="com.bjsxt.hibernate">
	<class name="Classes" table="t_classes">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<set name="students" inverse="true" cascade="all">
			<key column="classesid"/>
			<one-to-many class="Student"/>
		</set>
	</class>
</hibernate-mapping>

Student.hbm.xml

<hibernate-mapping>
	<class name="com.bjsxt.hibernate.Student" table="t_student">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<many-to-one name="classes" column="classesid"/>
	</class>
</hibernate-mapping>

三、lazy – 延迟加载(懒加载)

lazy – 延迟加载(懒加载),一般用于集合的抓取策略,也就是说只在需要用到的情况下,再发出select语句,将其相关的对象查询出来 ,set默认lazy属性的值是true,即hibernate会自动使用懒加载策略,以提高性能

<set name="students“ lazy=“false”>

          <key column="classesid" ></key>

          <one-to-many class="com.bjsxt.hibernate.Student" />

 </set>

四、inverse – 标记由哪一方来维护关联关系(双向关联中会用到)

inverse默认值为false

如果inverse设置为true,表示将由对方维护两者之间的关联关系。

inverse="true" 反转,cascade="all"级联,共同结果由对方维护两者之间的关联关系.

<set name="students“ lazy=“false” inverse=“true”>

          <key column="classesid" ></key>

          <one-to-many class="com.bjsxt.hibernate.Student" />

 </set>


 


 

 

 

 


 

 

本文转载自:http://www.cnblogs.com/xqzt/archive/2012/09/04/5637195.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
Hibernate映射——一对多关联映射(七)

一对多关联映射 映射原理 一对多关联映射和多对一的关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端。关联关系都是由多端维护,只是在写映射时发生了变化。 多对一和...

architect刘源源
01/11
3
0
Java程序员从笨鸟到菜鸟之(五十四)细谈Hibernate(五)Hibernate一对多关系映射

前几篇系列博客: 细谈Hibernate(一)hibernate基本概念和体系结构 细谈Hibernate(二)开发第一个hibernate基本详解 细谈Hibernate(三)Hibernate常用API详解及源码分析 细谈Hibernate(四...

长平狐
2012/11/12
425
0
Hibernate系列——总结篇(九)

概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架。 我们从上一句话可以看出Hibernate的核心:面向对象、关系映射以及数据持久化。前面两个概念很容...

architect刘源源
01/11
5
0
java.lang.StackOverflowError异常解决

在hibernate一对多映射中,两个实体都重写了toString()方法,,应用程序递归太深了,所以发生了堆栈溢出。解决方法就是将多的一方对象里面重写的toString方法去掉,或者两个对象里面重写的t...

大黄有故事
2016/11/05
0
0
Hibernate映射解析——七种映射关系

首先我们了解一个名词ORM,全称是(Object Relational Mapping),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的...

universeye
2014/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在Windows平台用Java代码暴力破解WIFI密码

由于新搬的地方没有覆盖移动的宽带,最近手头又紧。所以暂时先没安宽带,但是一天用流量,也撑不住啊。看着流量哗啦啦的溜走。住的地方在6楼,然后房子是底商的格局,于是就动起了蹭网的小心...

耒耒耒耒耒
3分钟前
0
0
兄弟连区块链教程以太坊源码分析core-vm-stack-memory源码分析

vm使用了stack.go里面的对象Stack来作为虚拟机的堆栈。memory代表了虚拟机里面使用的内存对象。 stack 比较简单,就是用1024个big.Int的定长数组来作为堆栈的存储。 构造 // stack is an...

兄弟连区块链入门教程
4分钟前
0
0
zabbix报错cannot set resource limit: [13] Permission denied解决方法

zabbix报错cannot set resource limit: [13] Permission denied解决方法 zabbix-server启动时出现以下错误: 1 2 3 4 2912:20180326:050930.023 using configuration file: /etc/zabbix/zab......

linjin200
8分钟前
0
0
kotlin使用spring mvc(四)

使用Interceptor拦截器 Filter 是在 Servlet 规范中定义的,是 Servlet 容器支持的。而拦截器是在 Spring容器内的,是Spring框架支持的。Filter在只在 Servlet 前后起作用。Filters 通常将 ...

weidedong
14分钟前
0
0
DAC测试链(TestNet)记录

20181022 DAC测试链(TestNet)记录 1、DAC 文档 https://github.com/linkdt-tech/DAC/blob/master/doc/createAsset.md 2、按照文档安装后,进入 dacd 目录 cd /opt/cd dacd_testnet/** 直......

wwzzhh166
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部