`
dabing013
  • 浏览: 40124 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate之一对一映射关系小结

阅读更多

 

一对一关系的实现,其建表策略有两种:

1、唯一外键,是指一方引用另一方的主键,作为外键,并且对引用的外键加唯一约束。

2、共享主键,是指一方引用另一方的主键,作为自身的主键,也是外键。

 

一、通过实例说明唯一外键的方式映射双向一对一关系

Account和Address是一对一关系,有以下属性:

**Account: Address addr;

**Address:Account acct;

 

 

在映射文件Account.hbm.xml中,关系属性addr配置如下:

 

<one-to-one name="addr" cascade="all"
                     property-ref="addr"/>

 

** property-ref表示外键所在的表对应的对象

在映射文件Address.hbm.xml中,关系属性acct配置如下:

<many-to-one name="acct"  column="fid"
                        unique="true"  cascade="all"/>

 

 **many-to-one 表示"关联属性"acct体现的是一对多(因为数据库中外键字段代表多),但是实际上acct代表一对一,因此添加unique="true" 的额外约束

**fid 代表表中的外键字段

**unique="true" 代表外键的唯一性

**cascade="all" 代表对任意数据库操作都执行"级联操作"


二、通过实例说明主键共享的方式实现双向一对一映射

 

同是以Account和Address一对一关系为例,有以下属性:

**Account: Address addr;

**Address:Account acct;

在映射文件Account.hbm.xml中,关系属性addr配置如下:

 

<one-to-one name="addr" cascade="all" />

在映射文件Address.hbm.xml中,关系属性acct主要配置如下:

 

 

<id name="oid">
           <generator class="foreign">
	     <param name="property">acct</param>
	   </generator>
</id>
<one-to-one name="acct" cascade="all"
                     constrained="true"/>
 **Address的主键值由Account的主键值而来

** <generator class = "foreign">是指oid的值是由关联表的主键值而来。

** <param name="property">acct</param>是指关联表是acct 属性的类型所对应的表

** constrained="true" 是指acct属性所在类对应表的主键对应acct属性类型所对应的关联表的主键

 

以上只是个人点滴总结,出错处请大家指出,谢谢

 

3
0
分享到:
评论

相关推荐

    Hibernate映射

    hibernate 映射关系 小结

    hibernate一对多关联映射学习小结

    主要介绍了hibernate一对多关联映射学习小结,需要的朋友可以参考下

    hibernate 3中的缓存小结

    hibernate 3中的缓存小结 2.2. 一级缓存的管理: 当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     7.3 映射一对多双向自身关联关系  7.4 改进持久化类  7.5 小结  7.6 思考题 第8章 通过Hibernate操纵对象(上)  8.1 Java对象在JVM中的生命周期  8.2 理解Session的缓存  8.2.1 Session的缓存的作用  ...

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不...

    Hibernate 框架总结

    对 Hibernate 框架的学习总结 映射配置已详细描述,如还是不懂得可以留言,私发你代码,如有错误,欢迎各位大神指点

    hibernate小结

    hibernate映射lazy策略hibernate查询语言hql

    精通hibernate:对象持久化技术孙卫琴第二版part2

    2.4.3 Hibernate映射类型接口 41 2.4.4 可供扩展的接口 42 2.5 小结 43 2.6 思考题 45 第3章 第一个Hibernate应用 47 本章通过简单的helloapp应用例子,演示如何利用Hibernate来持久化Java对象。 3.1 创建...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     7.3 映射一对多双向自身关联关系  7.4 改进持久化类  7.5 小结  7.6 思考题 第8章 通过Hibernate操纵对象(上)  8.1 Java对象在JVM中的生命周期  8.2 理解Session的缓存  8.2.1 Session的缓存的作用  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     7.3 映射一对多双向自身关联关系  7.4 改进持久化类  7.5 小结  7.6 思考题 第8章 通过Hibernate操纵对象(上)  8.1 Java对象在JVM中的生命周期  8.2 理解Session的缓存  8.2.1 Session的缓存的作用  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     7.3 映射一对多双向自身关联关系  7.4 改进持久化类  7.5 小结  7.6 思考题 第8章 通过Hibernate操纵对象(上)  8.1 Java对象在JVM中的生命周期  8.2 理解Session的缓存  8.2.1 Session的缓存的作用  ...

    精通Hibernate:对象持久化技术第二版part3

    2.4.3 Hibernate映射类型接口 41 2.4.4 可供扩展的接口 42 2.5 小结 43 2.6 思考题 45 第3章 第一个Hibernate应用 47 本章通过简单的helloapp应用例子,演示如何利用Hibernate来持久化Java对象。 3.1 创建...

    第1章准备源代码阅读环境与Hibernate的基本配置

    此书是一本探索Hibernate技术内幕的图书,所以探索之前,我们应该拥有一份Hibernate的源代码,并对源代码有一个大概的了解。这样,我们就可以很方便的结合着Hibernate源代码阅读以后的章节。本章除了讲解如何搭建源...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 ...15.13 小结

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 ...15.13 小结

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 ...15.13 小结

    精通Java Web整合开发(第2版)

    第12章 基于annotation注解技术的ssh 2整合开发 12.1 初识annotation522 12.2 亲身体验annotation的威力524 12.3 struts 2.x的annotation插件convention-plugin528 12.4 hibernate 3.x的annotation解决...12.6 小结563

    Java数据库技术详解 DOC简版

    第10章 Hibernate映射之实体映射 第11章 Hibernate的关联映射 第12章 HQL查询语言 第13章 Hibernate的高级特性 第14章 Hibernate结合JSP使用 第四篇 iBatis篇 第15章 iBatis概述 第16章 iBatis的特性 ...

    低清版 大型门户网站是这样炼成的.pdf

    4.3.4 映射一对一关联关系 228 4.3.5 映射多对一单向关联关系 235 4.3.6 映射一对多双向关联关系 239 4.3.7 映射一对多双向自身关联关系 244 4.3.8 映射多对多单向关联关系 247 4.3.9 映射多对多双向关联关系 ...

Global site tag (gtag.js) - Google Analytics