在Hibernate hbm文件中使用复合主键连接表

时间:2012-01-24 17:16:18

标签: hibernate-mapping key composite hbm

我有两个表使用hbm文件加入。

方案如下

表B具有复合PK。

表B

a1(pk)  a2(pk)  a3(pk)  FOO  杆

========

表A有一个主键,是表B中的外键

表A

a1(pk,fk)  臀部  跳

======

这是从表A到B的一对多关系。

任何人都可以帮我解决hbm文件映射问题吗?

我正在记下我曾尝试过的。

表B

<class>
<composite-id name="XXXX" class=".....">
        <key-property name="a1" column="a1" type="int"/>
        <key-property name="a2" column="a2" type="int"/>
        <key-property name="a3" column="a3" type="int"/>
    </composite-id>

    <property name="foo" column="foo" type="java.lang.Float"></property>    
    <property name="bar" column="bar" type="java.lang.Float"></property>
    </class>

表A

正常的休眠映射。

如何加入两个表?

1 个答案:

答案 0 :(得分:0)

一个解决方法可能是使用propertyref来打破compositeId

<class class="B">
  <property name="a1_again" column="a1" insert="false" update="false"/>

  <bag name="As" class="A">
    <key property-ref="a1_again"></key>
    ...
  </bag>
</class>