首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一对一不能在hibernate中工作

一对一不能在hibernate中工作
EN

Stack Overflow用户
提问于 2013-09-25 20:20:15
回答 1查看 433关注 0票数 0

我正在使用一对一关联,但它不起作用。可能是因为表中的列名不一样。

我有两张桌子。1) USER_DC和2)用户

在USER中,主键是- "ID“

在USER_DC中,有一个标志键,但其名称是:"USER_ID“

如果需要帮助,我该如何定义一对一关系?

In User.hbm.xml

代码语言:javascript
复制
<hibernate-mapping>
 <class name="com.test.User" table="USER">
 <cache usage="read-write"/>
    <id name="id" column="ID" type="java.lang.Long" length="10">
      <generator class="native">
        <param name="sequence">USER_SEQ</param>
      </generator>
    </id>
:
:

In userDC.hbm.xml

代码语言:javascript
复制
:
:
<one-to-one name="user" class="com.test.User"></one-to-one>
<one-to-one name="dc" class="com.test.DC"></one-to-one>

它不能工作

EN

回答 1

Stack Overflow用户

发布于 2013-09-27 10:03:02

我对一对一映射的理解是,主键从一对一的实体传播到目标实体-所以在您的例子中,它希望将id从UserDC传播到用户。这不是您定义数据库表的方式。

我认为您想要映射它的方式是使用具有唯一约束的多对一。

在UserDC.hbm.xml中,您将拥有以下内容:

代码语言:javascript
复制
<many-to-one name="user" class="com.test.User" column="USER_ID" unique="true"/>

您的数据库是否强制实施UserDC.USER_ID的多个UserDC行不能具有相同值的一对一约束?否则,你不是一对一的,而是多对一的。

希望这能有所帮助。

莎拉

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19004754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档