Hibernate的一对一双向关联分两种:

1,主键关联:2个表的主键具有完全相同的值。
2,外键关联:其中一个表使用外键关联另一个表。

下面介绍一对一的外键关联:

 首先在需要关联的两个实体类中加入对方的引用:

 如:

 两个实体类:WorkProcessDetailEntity(主),AchievementEntity(从)

在AchievementEntity类中加入包含get/set方法

private WorkProcessDetailEntity workProcessDetailEntity;

在WorkProcessDetailEntity加入包含get/set方法

private AchievementEntity achievementEntity;

配置相应的hbm配置文件:

TWorkProcessDetailEntity.hbm.xml添加内容:

<one-to-one name="achievementEntity" class="com.touchwisdom.airporttech.project.pojo.AchievementEntity"  property-ref="workProcessDetailEntity" cascade="all">

</one-to-one>

注意property-ref,如果没有这个属性,在进行关联查询时,默认一对一关联用的是主键关联,查询时比较的是两个表的id字段.这个字段指定了主的一方如何去关联从的一方.在这里设置的是workProcessDetailEntity,也就是AchievementEntity实体类定义的相关属性.

TAchievementEntity.hbm.xml添加内容:

<many-to-one name="workProcessDetailEntity"  class="com.touchwisdom.airporttech.project.pojo.WorkProcessDetailEntity" unique="true" >

<column name="processdetailid"></column>

注意:unique设置为true,代表唯一约束.

参考:http://www.lookhan.com/javaee/hibernate/20110320184900.html