- 浏览: 363915 次
- 性别:
- 来自: 广东珠海
文章分类
最新评论
-
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 2223测试对象的生命周期: ... -
hibernate 全面学习【悲观锁和乐观锁 学习】
2008-07-04 16:12 1546乐观锁: 大多数基于数据版本(version)记录机制实现,一 ... -
hibernate 全面学习【lazy策略 】
2008-07-04 15:58 7144lazy策略可以用在: * <class>标签 ... -
hibernate 全面学习【hibernate抓取策略 】
2008-07-04 15:46 4065Hibernate抓取策略 默认fetch的配置,也就fet ... -
hibernate 全面学习【hibernate hsql语句学习 】
2008-07-04 15:31 4935Hibernate hql * 注意hql的大小写敏感性 ... -
hibernate 全面学习【hibernate 粗粒度分析 】
2008-07-04 15:16 1611Hibernate继承映射的第一 ... -
hibernate 全面学习【hibernate 集合映射】
2008-07-04 15:07 2664集合的映射 set list array map packag ... -
hibernate 全面学习【hibernate 复合主键映射】
2008-07-04 15:01 1844复合主键映射 通常将复合主键相关属性,单独抽取出来,建立一个 ... -
hibernate 全面学习 【hibernte 组件映射学习 】
2008-07-04 14:59 1155component(组件映射) 在hibernate中,c ... -
hibernate 全面学习 【hibernate 缓存学习 】
2008-07-04 14:26 1921hibernate 缓存分为一级缓存和二级缓存,及查询缓存 ... -
hibernate 全面学习 【hibernate 基本映射】
2008-07-04 14:16 1260Hibernate基本映射: 类-->数据库表 普通属 ... -
Hibernate createCriteria查询
2007-05-18 08:36 166521、创建一个Criteria实例 net.sf.hiberna ... -
hibernate中Query和Criteria的用法
2007-03-15 17:20 2978//Scenario 1: query all ... -
“generating artifacts"的解决!
2007-03-14 13:45 11656很多人在用myeclipse4.1.1对一个表生成映射文件的时 ... -
hibernate+spring学习例子
2007-02-26 15:00 1959看例子,来这习hibernate 和spring -
hibernate问题,贴上来
2007-02-26 11:06 2163(1)hibernate警告 Could no ... -
利用模板方式写一个管理hibernate 中session的方法
2007-02-23 09:41 3588package com.t48.hr.util; imp ... -
解快hibernate查询带中文乱码问题
2007-02-20 14:32 2438"from ManPo ma where ma.na ... -
Hibernate分页
2007-02-06 08:50 1540import org.hibernate.Query; imp ...
相关推荐
7. **关联映射**:包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)、多对多(@ManyToMany)关系的映射,方便处理对象间的关联关系。 8. **延迟加载**:Hibernate的懒加载策略可以在需要时才...
在Java的持久化框架Hibernate中,Many-to-Many关系是一种常见的数据库表之间的关联方式,它表示一个实体可以与多个其他实体进行关联,反之亦然。本文将深入探讨如何在Hibernate中处理Many-to-Many关系的级联保存、...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系数据库模型在对象模型中的体现。这种关联通常用于表示两个实体之间非常特殊的联系,比如一个人只有一个身份证,或者一个公司只有一个总部...
本话题主要探讨的是Hibernate中的一种关联映射方式——一对一(One-to-One)单向外键关联。这种关联模式通常用于两个实体之间存在唯一对应的关系,例如一个用户对应一个唯一的账户。 在Hibernate中,一对一关联可以...
讲师深入讲解了如何使用5.0.7.Final版本进行实际项目开发,包括实体类设计、配置文件设置、CRUD操作、关联映射、查询优化等关键知识点,旨在帮助学员快速掌握Hibernate的精髓。 5. 学习资源 包含的"0.txt"可能是一...
这些示例涵盖了从基本的实体定义、配置,到复杂的查询、关联映射,通过实际操作,你可以深入理解Hibernate的工作原理和使用方法。 1. 实体管理:了解如何定义实体类,以及如何使用注解进行元数据配置。 2. 数据库...
【hibernate关联映射详解】 Hibernate 是一款流行的Java持久层框架,用于简化数据库操作。在Hibernate中,关联映射是实现对象关系映射(ORM)的关键,它允许我们在对象模型和关系数据库之间建立联系。关联映射主要...
Hibernate作为JPA的实现之一,提供了对JPA规范的全面支持。在Hibernate中,使用注解(Annotations)来标注Java类和字段,从而实现对象和数据库表的映射。"hibernate-common-annotations.jar"正是提供这些注解的关键...
7. **关联映射**:支持一对一、一对多、多对一和多对多等各种关联关系的映射,使得对象间的关联关系能够自然地反映到数据库中。 8. **延迟加载**:Hibernate的懒加载策略能有效减少数据库交互,只有在真正需要时才...
3. 关联映射:通过@ManyToOne、@OneToMany等注解定义实体之间的关联关系,实现对象的懒加载或立即加载。 4. 事务管理:使用Hibernate的Transaction API进行事务控制,保证数据的一致性和完整性。 5. 性能调优:根据...
### Hibernate关联关系映射 #### 一、单向关联 单向关联指的是对象之间的关联关系只在一个方向上存在,也就是说这种关联关系仅在一个类中表示出来,在另一个类中不体现这种关联。 ##### 1. 一对一外键单向关联 ...
通过深入学习Hibernate 4.1.4.Final的源码,我们可以更好地理解其设计思想,提升我们的编程技巧,同时也能为日常开发中遇到的问题提供解决方案。这是一份宝贵的资源,无论是对于初学者还是经验丰富的开发者,都值得...
2. JPA 2.2支持:该版本全面支持Java Persistence API 2.2规范,引入了新特性如JSON-B支持,增强了实体间关联的灵活性。 3. 新的查询语言:HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language...
在Java的持久化框架Hibernate中,关系映射是数据库对象之间的关联方式,它允许我们将复杂的数据库结构映射到Java对象上。"Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联...
--指定 Hibernate 映射文件路径 --> <mapping resource="com/Hibernate/test_products.hbm.xml" /> </session-factory> </hibernate-configuration> ``` 在该文件中,我们可以看到有多个关键的配置项: * `...
-- 其他配置 --> </session-factory> </hibernate-configuration> ``` - **实体类映射**:编写实体类并定义相应的 hbm.xml 映射文件或使用注解方式实现。 #### 三、新特性与改进 1. **性能优化**:针对查询...
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...