hibernate - 将PK映射到2列

时间:2011-10-09 09:13:50

标签: database hibernate

我在网上搜索答案,但所有答案都是指复合ID PK。 我想要两个类型为long的两个地图列到PK。 一个应该是常规生成的id,另一个应该是常规的长字段。

我有以下映射:

  <class name="com.company.MyTable" table="My_Table">
        <id name="id" column="id">            
            <generator class="assigned"/>
        </id>
        <property name="jobId" column="job_id" type="long" index="oes_job_id_idx" />
        <property name="serverId" column="server_id" type="long"/>
     </class>

我想在PK中添加job_id列。 我该怎么做?

2 个答案:

答案 0 :(得分:2)

根据定义,主键应该是具有最少列的唯一键:

  • 您不能拥有多个主键
  • 如果第一列已经是唯一的
  • ,则不应为主键使用其他列

创建单独的索引并不能给你带来好处 - 所以坚持将生成的字段作为主键。因此,hibernate不支持这一点,因为这是一件错误的事情。

答案 1 :(得分:0)

请看这个问题,有一个完整的复合主键解决方案:

Mapping same class relation

然后

Mapping same class relation - continuation

希望它有所帮助。