0

为清晰而简化

假设我有 2 个这样的表:
TableName Building
(2)Columns:
*buildPrimaryKey,
*addrForeignKey


TableName地址
(1)Columns:
*addrPrimaryKey

我想有hibernate map
Building。addrForeignKey到 Address.addrPrimaryKey

取而代之的是hibernate正在映射
Building。buildPrimaryKey到 Address.addrPrimaryKey


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

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

我遗漏了什么或定义不正确?

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

4

1 回答 1

0

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

在 Building.hbm.xml
<many-to-one name="var_addr" --包含类的变量名
class=" com.Address" -- Building above
column="addrForeignKey" -- 相关外键
cascade="save-update" -- 不知道这是做什么的,确实是
唯一的="true"/> --hackish 方式实施一对一映射

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

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

于 2013-10-24T17:21:52.060 回答