当前位置:编程学习 > JAVA >>

朋友们帮忙看一下,把一个表的普通字段作为另一个表的外键(hibernate)?

有这样一个需求,有两张表它们具有一对多的关系(A,B),现在A表中有一个普通字段(testId)作为B表的外键(testId)(在表中没有设定这种关系),我在hibernate中按常规的一对多的配置文件设好后,hibernate默认的都是会去A表中找它的主键字段,可这不是我想要的效果(我需要它去找那个普通字段testId),hibernate里面可以通过配置实现我想要的这种想过吗?  先谢过各位朋友! --------------------编程问答-------------------- 既然是外键,那B表中testId有的值,A表的testId也有,且相等,那么取哪个testId有区别么。
你是想问不想连A表么,延迟加载即可。 --------------------编程问答-------------------- 谢谢楼上的兄弟了,目前的情况是这样的,我用hibernate查出了B表中的一条记录,然后因A和B两表有关系,所以他会拿着B表中查出的testId去A表中查询,并且查询条件是 where A表的主键=testId(从B表查出的testId),  但是这不是我想要的结果,我希望它能where A表的testId=testId(从B表查出的testId)这样的效果.可以通过hibernate配置文件实现吗? --------------------编程问答-------------------- 对了,这里应该不能说是外键(如果是外键的话testId必须是A表的主键),只能说是一种参照关系. --------------------编程问答-------------------- 刚看了hibernate的文档,用property-ref专门引用另一张表的非主键字段 --------------------编程问答-------------------- 在你多对一的那一端配置:
<!-- 配置h_rid的关联为另一个表不允许重复的字段 -->
<many-to-one name="h_rid" property-ref="Housename" column="Housename"/>
一对多那一端配置:
<set name="h_manage" inverse="true" >
<key column="h_rid" property-ref="Housename"/>
<one-to-many class="com.property.manage.entity.Home_manage"/>
</set> --------------------编程问答-------------------- 不允许重复的字段是那个Housename  这样配置他关联的是Housename  而不是里的id 
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,