Hibernate一对一映射映射不正确

时间:2013-10-24 03:31:58

标签: hibernate

简化说明

假设我有2个这样的表:
TableName 建筑物
  (2)柱:
* buildPrimaryKey,
* addrForeignKey


TableName 地址
  (1)柱:
* addrPrimaryKey

我想要休眠地图
建立。 addrForeignKey 到Address.addrPrimaryKey

相反,hibernate正在映射
建立。 buildPrimaryKey 到Address.addrPrimaryKey

下面的当前地图文件
Building.hbm.xml
......
<one-to-one name="addrForeignKey" fetch="select" class="com.Address"/>
......

Address.hbm.xml
......
<id name="addrPrimaryKey" type="java.lang.Long" column="addrPrimaryKey">
<generator class="increment"/>
</id>

......

我缺少什么或定义错误?

**看看类似的堆栈溢出问题我试过反转一对一元素,但是这样做时会得到无法解析的映射错误。

1 个答案:

答案 0 :(得分:0)

最终通过使用多对一映射解决了这个问题(尽管不是实际关系)

在Building.hbm.xml中 &lt; many-to-one name =“var_addr” - 包含类的变量名
class =“com.Address” - 上面建筑物中的对象类
column =“addrForeignKey” - 相关的外键
cascade =“save-update” - 不确定这是真的这样做
独特= “真”/&GT; - 强制执行一对一映射的hackish方式

Address.hbm.xml - 不需要与此映射相关的信息

总而言之,我发现对象映射的对象与hibernate非常不直观(在这种情况下是实际的多对一或多对多映射),以及我可用的书籍,比如建议这样做的多对象一种映射作为一种解决方案,似乎同意。我可能会在将来尝试注释,希望它们更清晰。