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,说明该映射文件所映射类的实例只与一个关联类的实例对应。
所谓以主键关联,就是从表的主键同时又作为外键参考主表的主键,这种将一个字段即作为主键又作为外键的情况,只能在一对一的关联文件中实现。
因为主键的值是不允许重复的,并且在持久化类映射文件的双方都是通过<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,说明该映射文件所映射类的实例只与一个关联类的实例对应。
相关文章推荐
- ORM框架Hibernate (四) 一对一单向、双向关联映射
- 【SSH进阶之路】Hibernate映射——一对一双向关联映射(六)
- hibernate一对一主键关联映射双向
- Hibernate关联关系映射之一对一(主键关联)
- hibernate一对一唯一外键关联单向映射
- Hibernate(五)——经典解析一对一关联映射
- hibernate之关于一对一单向,双向关联映射
- 【Hibernate步步为营】--双向关联一对一映射详解(二)
- 【Hibernate步步为营】--双向关联一对一映射详解(二)
- 【SSH进阶之路】Hibernate映射——一对一双向关联映射(六)
- 【Hibernate框架】关联映射(一对一关联映射)
- ORM框架Hibernate (四) 一对一单向、双向关联映射
- (六)Hibernate之单向一对一外键关联映射
- Hibernate从入门到精通(六)一对一双向关联映射
- hibernate双向一对一主键关联映射XML与注解版
- hibernate:一对一外键关联映射(单向)
- Hibernate 关联映射之---- 一对一双向映射
- hibernate映射一对一关联(主键关联)
- Follow Me:深入浅出学习Hibernate五:Hibernate关联映射一对一
- hibernate一对一关联映射--