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
转载于:https://blog.51cto.com/wangchaokk/859777