hibernate映射一对一关联 6

一、以主键关联

      所谓以主键关联,就是从表的主键同时又作为外键参考主表的主键,这种将一个字段即作为主键又作为外键的情况,只能在一对一的关联文件中实现。

      因为主键的值是不允许重复的,并且在持久化类映射文件的双方都是通过<one-to-one>元素实现映射。

在User.hbm.xml文件中的映射PurviewPK类的实例的代码如下:

<one-to-one name="purviewPK" class=“PurviewPK” cascade="all" lazy="false">

属性说明:

                  ①name:要映射的实例名称

                  ②class:要映射的实例类型

                  ③cascade:设定级联操作的权限,建议在一对一关联中主类对关联类的级联操作权限不要低于all.

                  ④lazy:设定是否采用延迟加载,这里不采用延迟加载

在PurviewPK.hbm.xml文件中映射User类的实例代码如下:

<one-to-one name="user" class="User" constrained="true" lazy="false">

属性说明:

                  constrained:constrained属性设为true,说明该映射文件所映射表的主键同时作为外键,参照关联类对应表的主键。

因为映射文件PurviewPK.hbm.xml所映射表的主键同时作为外键,所以需要在映射文件中配置OID的生成方式,代码如下:

<id name="id" column="id" type="int" access="field">

     <generator class="foreign">

          <param name="property">user</param>

     </generator>

</id>

<generator>元素的class属性设为foreign,说明该主键同时为外键,所以主键的生成方式将参考外键。

<param>元素用来设定外键的参考信息,name属性的值property说明参考信息的类型为属性,user为本映射类的关联类的实例名称。

二、以外键关联

      所谓以外键关联,就是从表的主键并不作为外键参考主表的主键,而是将其他字段作为外键参考主表的主键,以外键的方式可以建立各种关联关系,但是在持久化类映射文件中有一方是通过<one-to-one>元素实现映射的,而另一方是通过<many-to-one>元素实现映射的。

在User.hbm.xml文件中的映射PurviewPK类的实例的代码如下:

<one-to-one name="purviewPK" class=“PurviewPK” cascade="all" lazy="false">

在PurviewPK.hbm.xml文件中映射User类的实例代码如下:

<many-to-one name="user" class="User" column="user_id" unique="true" lazy="false">

属性说明:

                  column:关联表的外键。

                  unique:unique等于true,说明该映射文件所映射类的实例只与一个关联类的实例对应。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值