首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一对多Hibernate映射中使用部分组合键

在一对多Hibernate映射中使用部分组合键
EN

Stack Overflow用户
提问于 2012-08-14 17:05:16
回答 1查看 3.7K关注 0票数 4

我有一种用于EmployeeDepartment的表结构。Employee的组合键有三列- EMP_IDDEPT_IDDEPT_CODE,但部门只有两列与Employee - DEPT_IDDEPT_CODE的组合键匹配。

代码语言:javascript
复制
<class name="com.test.Employee" table="EMPLOYEE">
   <composite-id>
    <key-property column="EMP_ID" name="empId" type="java.lang.Integer"/>
    <key-property column="DEPT_ID" name="deptID" type="java.lang.Integer"/>
        <key-property column="DEPT_CODE" name="deptID" type="java.lang.Integer"/>
   </composite-id>
   <property column="EMP_NAME" name="empName" type="java.lang.String"/>
   <list name="departments" table="DEPARTMENT" fetch="select">
     <key>
    <column name="DEPT_ID"></column>
        <column name="DEPT_CODE"></column>
     </key>
     <index/>
     <one-to-many class="com.test.Department" />
   </list>
</class>

<class name="com.test.Department" table="DEPARTMENT">
   <composite-id>
      <key-property column="DEPT_ID" name="deptID" type="java.lang.Integer"/>
      <key-property column="DEPT_CODE" name="deptID" type="java.lang.Integer"/>
   </composite-id>
   <property column="DEPT_NAME" name="deptName" type="java.lang.String"/>
</class>

现在我想在这两个表上加入一个连接,但是它给出了错误提示,说主键EMP_ID没有被映射。如果我将EMP_ID放在Employee映射xml中的"list departments key column“下,应用程序会加载,但在Department表中没有匹配的列。

那么有没有办法解决这个问题呢。如何在hibernate映射文件中配置join/one-to-many mapping,当您有一个表包含一个组合键,另一个表的主键是组合键的子集。

EN

回答 1

Stack Overflow用户

发布于 2012-08-28 07:27:57

我不太明白你说的“加入”是什么意思...你的问题听起来可能和这个有点类似……

https://forum.hibernate.org/viewtopic.php?f=1&t=985555

也许问题是您正在尝试连接的hql (您没有提供)是不正确的?如果你能澄清你的问题,你可能会得到一个更好的答案。

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

https://stackoverflow.com/questions/11949063

复制
相关文章

相似问题

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