您的位置:首页 > 其它

hibernate映射一对一关联 6

2012-12-10 22:30 190 查看
一、以主键关联

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

因为主键的值是不允许重复的,并且在持久化类映射文件的双方都是通过<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,说明该映射文件所映射类的实例只与一个关联类的实例对应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: