首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate详解(四)->>关联关系映射(二)

2013-01-26 
Hibernate详解(四)----关联关系映射(二)Hibernate详解(四)----关联关系映射(二)?3、单向一对一???? 每

Hibernate详解(四)---->>关联关系映射(二)

Hibernate详解(四)---->>关联关系映射(二)

?

3、单向一对一

???? 每个中国公民都有一张身份证,这就是典型的一对一关联关系。首先,讨论单向的一对一,即只考虑从公民这一端能找到它的身份证,而身份证这一端不知道公民的存在。
???? 有两种常用的方式可以表示这种一对一关系:基于唯一外键关联方式和基于主键关联方式。

方式一:基于外键关联方式

?


Citizen.java

?

?

IDCard.hbm.xml

?

?

配置文件:hibernate.cfg.xml

?

?

方式二:基于主键关联方式

citizen表和idcard表具有相同的主键。这种实现方式的映射文件如下。

?

Citizen.hbm.xml

?

?

? 备注:

????? 在这个映射文件中,通过指定标识符生成器为foreign来保证与property属性指定的对象共享同一个OID。使用one-to-one 元素来映射一对一关联。通过constrained=true ,添加了把citizen表的主键链接到idcard表主键的外键约束,即数据库保证citizen表的主键引用有效的idcard表的主键。

?

4、双向一对一

?

???? 单向的一对一关联常用的实现方式有两种:基于唯一外键和基于主键。同样,双向的一对一关联也有这两种常用的实现方式。


方式一:基于外键一对一关联方式

?

Citizen.java

?

?

IDCard.hbm.xml

?

?

配置文件:hibernate.cfg.xml

?

方式二:基于主键的双向一对一关联方式

?????? 基于主键的映射方式,指的是一端的主键使用foreign策略来参照另一端的主键来生成,这样两端就具有相同的主键值。当然,关联的任何一端都可以采用foreign策略来生成主键,只是在采用foreign策略生成主键的一端要使用one-to-one 元素映射关联的对象,同时还要添加constrainted=true 属性。而没有使用foreign策略生成主键的那一端就可能直接使用one-to-one 元素来映射关联的对象。具体的映射文件如下:

?

? Citizen.hbm.xml

?

?

?

IDCard.hbm.xml

?

?

?

热点排行