我正在使用一对一关联,但它不起作用。可能是因为表中的列名不一样。
我有两张桌子。1) USER_DC和2)用户
在USER中,主键是- "ID“
在USER_DC中,有一个标志键,但其名称是:"USER_ID“
如果需要帮助,我该如何定义一对一关系?
In User.hbm.xml
<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
:
:
<one-to-one name="user" class="com.test.User"></one-to-one>
<one-to-one name="dc" class="com.test.DC"></one-to-one>它不能工作
发布于 2013-09-27 10:03:02
我对一对一映射的理解是,主键从一对一的实体传播到目标实体-所以在您的例子中,它希望将id从UserDC传播到用户。这不是您定义数据库表的方式。
我认为您想要映射它的方式是使用具有唯一约束的多对一。
在UserDC.hbm.xml中,您将拥有以下内容:
<many-to-one name="user" class="com.test.User" column="USER_ID" unique="true"/>您的数据库是否强制实施UserDC.USER_ID的多个UserDC行不能具有相同值的一对一约束?否则,你不是一对一的,而是多对一的。
希望这能有所帮助。
莎拉
https://stackoverflow.com/questions/19004754
复制相似问题