- 浏览: 357873 次
- 性别:
- 来自: 广东珠海
文章分类
最新评论
-
cuiyijing:
[size=small]马士兵 26_homework_dml ...
SQL面试题 -
utobe:
兄弟 你真的出名了,尚学堂 oracle 马士兵的视频拿你的题 ...
SQL面试题 -
tlqtangok:
没看懂,能解释一下吗?
安装Oracle后java的jvm会报错 -
a114d:
itling 写道尚学堂的demo楼上威武
hibernate 全面学习【hibernate抓取策略 】 -
wohenshuaiba:
不错,但是没写return checkimg( this ); ...
图片上传
hibernate 关联映射学习包括 一对一,一对多,多对多 请查看相应的附件
Person -> Idcard
Hibernate一对一主键关联映射(单向关联)
主键关系:即让两个对象的id保持相同,这样可以避免多余的字段被创建
!!注意:<one-to-one>标签指示Hibernate如何加载其引用对象,
缺省情况下根据主键加载引用对象
Hibernate一对一主键关联映射(双向关联)
需要在idcard中加入<one-to-one>指向person,告知hibernate如何加载person,
缺省情况下根据主键加载
Hibernate一对一唯一外键关联映射(单向关联)
实际上是many-to-one的特例
可以采用many-to-one的标签指定“多”一端的unique="true",即限制“多”
一端的多重性为“一”,通过这种手段来实现一对一关联
这种方法会添加一个外键,指向另外一端的主键(IdCard)
Hibernate一对一唯一外键关联映射(双向关联)
双向关联需要在另外一端(IdCard)端添加<one-to-one>标签,
指示hibernate如何加载其引用对象,默认情况下会根据主键匹配进行加载Person
因为外键关联映射中,两个实体的关系是由person的外键idcard维护的,所以不能指定
使用persion的主键对person进行加载,而要根据Person的外键idcard进行加载,如:
<one-to-one name="person" property-ref="idCard" />
Hibernate一对多单向关联映射
这种映射的本质是利用了多对一的关联映射的原理
多对一关联映射:是在多的一端添加一个外键维护多指向一的关联引用
一对多关联映射:是在多的一端添加一个外键维护一指向多的关联引用
也就是说,一对多和多对一的映射策略是一致的,只是站的角度不同
缺点:
* 更新student表中的classesid字段时,需要对每一个student发出一个update的sql,
来更新classesid字段
* 如果将t_student表中的classesis设置为非空,则不能保存student数据,因为关系是由
classes维护的,在保存student时,还没有对应的classesid被生成
Hibernate 一对多双向关联映射
一对多双向关联映射的方法:
在一一端:
在集合标签里面使用<key>标签来表明需要在对方的表中添加一个外键指向一一端。
在多一端:
使用<many-to-one>标签来映射。
需要注意:<key>标签所指定的外键字段名需要与<many-to-one>标签定义的外键字段名一致,否则便会造成引用数据的
丢失!
--------------------------------------------------------------------------------------
如果从一端来维护一对多双向关联的关系,hibernate会发出多余的update语句,所以
一般地情况下,我们便会从多一端来维护其关联关系!
----------------------------------------------------
关于inverse属性:
inverse属性可以被设置到集合标签<set>上,表示在存储双向一对多关联映射的时候,
存储的是那一方的关联引用。默认情况下,inverse=“false”,所以,我们可以从一一端
或者多一端来维护两者之间的关系;如果我们设置inverse=“true”,则只能通过多一端来
维护两者之间的关系。inverse属性可以被用在一对多和多对多双向关联中;
注意:inverse属性只是在将数据持久化到数据库的过程中发挥作用.
Hibernate多对一关联
关联映射的本质
* 是将关联关系映射到数据库中,关联关系在对象模型中体现为内存中的一个或多个引用
<many-to-one>标签会在“多”的一端添加一个外键,指向“一”的一端,这个外键是由<many-to-one>
标签中的column属性定义的,如果忽略column属性,默认创建的外键与属性名相同
<many-to-one>标签的定义实例:
<many-to-one name="group" column="relatedGroup"/>
可以指定class属性,如果不指定Hibernate会自动找其关联类
理解级联的含义
多对多单向关联
需要注意映射规则:
<set name="users" table="t_user_role">
<key column="roleid"/>
<many-to-many class="com.bjsxt.hibernate.User" column="userid"/>
</set>
多对多双向关联
注意映射规则:
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>
</set>
table属性必须和单向关联中table的 名称相同;
<key>中的column属性值必须等于单向关联中<many-to-many>标签指向的column的属性值
<many-to-many>中column属性值必须等于单向关联中<key>中column的属性值
Person -> Idcard
Hibernate一对一主键关联映射(单向关联)
主键关系:即让两个对象的id保持相同,这样可以避免多余的字段被创建
!!注意:<one-to-one>标签指示Hibernate如何加载其引用对象,
缺省情况下根据主键加载引用对象
Hibernate一对一主键关联映射(双向关联)
需要在idcard中加入<one-to-one>指向person,告知hibernate如何加载person,
缺省情况下根据主键加载
Hibernate一对一唯一外键关联映射(单向关联)
实际上是many-to-one的特例
可以采用many-to-one的标签指定“多”一端的unique="true",即限制“多”
一端的多重性为“一”,通过这种手段来实现一对一关联
这种方法会添加一个外键,指向另外一端的主键(IdCard)
Hibernate一对一唯一外键关联映射(双向关联)
双向关联需要在另外一端(IdCard)端添加<one-to-one>标签,
指示hibernate如何加载其引用对象,默认情况下会根据主键匹配进行加载Person
因为外键关联映射中,两个实体的关系是由person的外键idcard维护的,所以不能指定
使用persion的主键对person进行加载,而要根据Person的外键idcard进行加载,如:
<one-to-one name="person" property-ref="idCard" />
Hibernate一对多单向关联映射
这种映射的本质是利用了多对一的关联映射的原理
多对一关联映射:是在多的一端添加一个外键维护多指向一的关联引用
一对多关联映射:是在多的一端添加一个外键维护一指向多的关联引用
也就是说,一对多和多对一的映射策略是一致的,只是站的角度不同
缺点:
* 更新student表中的classesid字段时,需要对每一个student发出一个update的sql,
来更新classesid字段
* 如果将t_student表中的classesis设置为非空,则不能保存student数据,因为关系是由
classes维护的,在保存student时,还没有对应的classesid被生成
Hibernate 一对多双向关联映射
一对多双向关联映射的方法:
在一一端:
在集合标签里面使用<key>标签来表明需要在对方的表中添加一个外键指向一一端。
在多一端:
使用<many-to-one>标签来映射。
需要注意:<key>标签所指定的外键字段名需要与<many-to-one>标签定义的外键字段名一致,否则便会造成引用数据的
丢失!
--------------------------------------------------------------------------------------
如果从一端来维护一对多双向关联的关系,hibernate会发出多余的update语句,所以
一般地情况下,我们便会从多一端来维护其关联关系!
----------------------------------------------------
关于inverse属性:
inverse属性可以被设置到集合标签<set>上,表示在存储双向一对多关联映射的时候,
存储的是那一方的关联引用。默认情况下,inverse=“false”,所以,我们可以从一一端
或者多一端来维护两者之间的关系;如果我们设置inverse=“true”,则只能通过多一端来
维护两者之间的关系。inverse属性可以被用在一对多和多对多双向关联中;
注意:inverse属性只是在将数据持久化到数据库的过程中发挥作用.
Hibernate多对一关联
关联映射的本质
* 是将关联关系映射到数据库中,关联关系在对象模型中体现为内存中的一个或多个引用
<many-to-one>标签会在“多”的一端添加一个外键,指向“一”的一端,这个外键是由<many-to-one>
标签中的column属性定义的,如果忽略column属性,默认创建的外键与属性名相同
<many-to-one>标签的定义实例:
<many-to-one name="group" column="relatedGroup"/>
可以指定class属性,如果不指定Hibernate会自动找其关联类
理解级联的含义
多对多单向关联
需要注意映射规则:
<set name="users" table="t_user_role">
<key column="roleid"/>
<many-to-many class="com.bjsxt.hibernate.User" column="userid"/>
</set>
多对多双向关联
注意映射规则:
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>
</set>
table属性必须和单向关联中table的 名称相同;
<key>中的column属性值必须等于单向关联中<many-to-many>标签指向的column的属性值
<many-to-many>中column属性值必须等于单向关联中<key>中column的属性值
- hibernate.rar (100.6 KB)
- 下载次数: 158
评论
7 楼
zhangjiajun1988
2010-01-11
不管是哪里的。。能奉献出来不错了。。顶楼主
6 楼
wjzliu0064
2009-01-05
5 楼
anthon_lx
2008-08-30
现在尚学堂的资料是满天飞了吧!
4 楼
penghao122
2008-08-29
全是尚学堂的视频教程。不敢独想
所以。。搞出来啦。。
相互学习。。没有对和错
所以。。搞出来啦。。
相互学习。。没有对和错
3 楼
keenvi
2008-08-22
不管是不是照搬来的,拿出来分享就该非常感谢了
zhangxu261 不应该有啥别的意思.
引用
评论
zhangxu261 2008-07-30
楼主!这个好像是尚学堂hibernate里面的readme啊,你照搬过来了?
zhangxu261 2008-07-30
楼主!这个好像是尚学堂hibernate里面的readme啊,你照搬过来了?
zhangxu261 不应该有啥别的意思.
2 楼
zhangxu261
2008-07-30
楼主!这个好像是尚学堂hibernate里面的readme啊,你照搬过来了?
1 楼
tianma168
2008-07-21
你是女的?????? 汗 当今世上还有这么专业的女人(而且还是程序员)。
发表评论
-
hibernate
2012-05-14 14:27 0<?xml version="1.0" ... -
hibernate 全面学习【hibernate session学习】
2008-07-04 16:16 2145测试对象的生命周期: ... -
hibernate 全面学习【悲观锁和乐观锁 学习】
2008-07-04 16:12 1506乐观锁: 大多数基于数据版本(version)记录机制实现,一 ... -
hibernate 全面学习【lazy策略 】
2008-07-04 15:58 7079lazy策略可以用在: * <class>标签 ... -
hibernate 全面学习【hibernate抓取策略 】
2008-07-04 15:46 3998Hibernate抓取策略 默认fetch的配置,也就fet ... -
hibernate 全面学习【hibernate hsql语句学习 】
2008-07-04 15:31 4863Hibernate hql * 注意hql的大小写敏感性 ... -
hibernate 全面学习【hibernate 粗粒度分析 】
2008-07-04 15:16 1555Hibernate继承映射的第一 ... -
hibernate 全面学习【hibernate 集合映射】
2008-07-04 15:07 2606集合的映射 set list array map packag ... -
hibernate 全面学习【hibernate 复合主键映射】
2008-07-04 15:01 1810复合主键映射 通常将复合主键相关属性,单独抽取出来,建立一个 ... -
hibernate 全面学习 【hibernte 组件映射学习 】
2008-07-04 14:59 1119component(组件映射) 在hibernate中,c ... -
hibernate 全面学习 【hibernate 缓存学习 】
2008-07-04 14:26 1887hibernate 缓存分为一级缓存和二级缓存,及查询缓存 ... -
hibernate 全面学习 【hibernate 基本映射】
2008-07-04 14:16 1218Hibernate基本映射: 类-->数据库表 普通属 ... -
Hibernate createCriteria查询
2007-05-18 08:36 165771、创建一个Criteria实例 net.sf.hiberna ... -
hibernate中Query和Criteria的用法
2007-03-15 17:20 2951//Scenario 1: query all ... -
“generating artifacts"的解决!
2007-03-14 13:45 11620很多人在用myeclipse4.1.1对一个表生成映射文件的时 ... -
hibernate+spring学习例子
2007-02-26 15:00 1918看例子,来这习hibernate 和spring -
hibernate问题,贴上来
2007-02-26 11:06 2125(1)hibernate警告 Could no ... -
利用模板方式写一个管理hibernate 中session的方法
2007-02-23 09:41 3540package com.t48.hr.util; imp ... -
解快hibernate查询带中文乱码问题
2007-02-20 14:32 2404"from ManPo ma where ma.na ... -
Hibernate分页
2007-02-06 08:50 1496import org.hibernate.Query; imp ...
相关推荐
hibernate一对一主键关联映射(单向关联Person---->IdCard) 8 hibernate一对一主键关联映射(双向关联Person<---->IdCard) 9 hibernate一对一唯一外键关联映射(单向关联Person---->IdCard) 10 hibernate一对一...
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...
hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1171227
Hibernate 一对一外键单向关联 Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接...
Hibernate实体关联关系映射--学习总结.pdf
该资源包含了一些常用的hibernate关联映射实例。包括一对多,多对多,继承映射,等,是学习hibernate的必备品
Hibernate 实体关联关系映射 学习总结 把一对一 一对多 单向 双向 主键 外键 链接表等讲的比较清楚
018 关联映射文件中<class>标签中的 lazy(懒加载)属性 019 关联映射文件中集合标签中的 lazy(懒加载)属性 020 <one-to-one>、<many-to-one>单端关联上的 lazy(懒加载)属性 021 继承关联映射 022 component(组件)关联...
传智播客李勇hibernate源码1-20课,目录如下:01_hibernate介绍与动手入门体验;02_hibernate入门案例的细节分析; 03_hibernate入门案例的代码优化; 04_Session接口及get|... 20_一对一外键关联关系的映射与原理分析
buy.action-->BuyAction-->CartFactory-->ShoppingCart -->ProductDAO 将ShoppingCart组件交给容器并且设置scope="session"后, 需要使用cart对象时,容器首先去session对象寻找,有的话返回;没有spring会创建一个并...
NULL 博文链接:https://1028826685.iteye.com/blog/1536060
Hibernate4中映射关系图解。
Hibernate实体关联关系映射--学习总结,让同仁们更好的学习Hiebernate
关于对Hibernate关联映射的一个总结,其中有各种映射的例子,详细用法 等