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

Hibernate学习札记(对象-一对一关系映射)

2012-10-31 
Hibernate学习笔记(对象-一对一关系映射)话不多说,直接上例子,Husband和Wife之间的一对一关联关系:Husband

Hibernate学习笔记(对象-一对一关系映射)

话不多说,直接上例子,

Husband和Wife之间的一对一关联关系:

Husband持久化类代码:

public class User { private Integer h_id; private String husbandName; private Wife wife; public Integer getH_id() {  return h_id; } public void setU_id(Integer h_id) {  this.h_id = h_id; } public Wife getWife() {  return wife; } public void setWife(Wife wife) {  this.wife = wife; } public void setU_id(Integer u_id) {  this.u_id = u_id; } public String getHusbandName() {  return husbandName; }}

?Wife持久化类:

?

public class Wife {private String wifeName;private Husband husband;private Integer w_id;public Integer getW_id() {return w_id;}public void setW_id(Integer w_id) {this.w_id = w_id;}public String getWifeName() {return wifeName;}public void setWifeName(String wifeName) {this.wifeName = wifeName;}public User getHusband() {return usband;}public void setHusband(Husband husband) {this.husband = husband;}}

?一对一关系的配置存在两种方式,一种是通过主键,另外一种是通过唯一外键去关联

配置文件如下:

<hibernate-mapping package="com.lovo"><class name="Husband" table="t_husband"><id name="u_id" column="f_user_id" type="integer"><generator type="string" column="f_husbandName"></property><!-- 基于主键的一对一--><!-- 这里就是一对一的映射 --><one-to-one name="wife" cascade="save-update"></one-to-one>
<!--唯一外键关联的一对一-->
<!--这里我是把huband作为多的一方,column t_husband表中的字段名,表示一个外键-->
<!--设置unique="true"表示唯一性-->
<many-to-one name="wife"???name="code"><class name="Wife" table="t_wife"><!-- 基于主键的一对一关系 --><id column="f_wife_id" name="w_id" type="integer"><!-- 注意: --><!-- 本类的id 既是主键,又是外键  --><!-- Wife对象的是从对象, huband是主对象, 先有主,后有从.  --><!-- 此处的husband是Wife类的一个属性 --><generator type="string" column="f_wifeName"></property><!-- 此处的user是User类的一个属性 --><!-- constrained="true" 对生成的数据表产生约束,t_wife表的w_id既是主键,又是外键 --><!-- constrained="false" 表结构上没有约束, 取何值对对象关系没影响,只是对表结构有影响--><one-to-one name="husband" constrained="true" cascade="save-update"></one-to-one></class>
<!--基于外键的一对一-->???<one-to-one name="husband" property-ref="wife" cascade="save-update">???</one-to-one>

?测试就没写了,参照一对多关系中的例子。

?

热点排行