簡體   English   中英

使用Composite-ID進行多對一映射

[英]Mapping many-to-one with composite-id

我試圖映射具有多對一關系的組合鍵。

如何映射擁有4個元素的復合id的類A和擁有3個元素的復合id的類B來實現這兩個類之間的約束:

A(*)<->(1)B嗎?

<hibernate-mapping>
    <class name="A" table="A_TABLE" lazy="true">
        <composite-id>
            <key-property name="prop1" column="PROP1" type="string" />
            <key-property name="prop2" column="PROP2" type="long" />
            <key-property name="prop3" column="PROP3" type="long" />
            <key-property name="prop4" column="PROP4" type="integer" />
        </composite-id>
        <property name="prop10" type="string" column="PROP10" />
        ...
    </class>

    <class name="B" table="B_TABLE" lazy="false">
        <composite-id>
            <key-property name="prop1" column="PROP1" type="string" />
            <key-property name="prop2" column="PROP2" type="long" />
            <key-property name="prop3" column="PROP3" type="long" />
         </composite-id>
         <property name="prop20" type="string" column="PROP20" />
         ...
    </class>
</hibernate-mapping>

可以說我有3類- Other , FooBar 您可以如下創建多對一

<class name="Other" table="OTHER">
  <composite-id>
    <key-property name="id1"/> 
    <key-property name="id3"/> 
  </composite-id>
  <property name="text"/>
</class>

<class name="Foo" table="FOO">
  <composite-id>
    <key-property name="id1"/> 
    <key-property name="id2"/> 
  </composite-id>
  <property name="text"/>
</class>


<class name="Bar" table="BAR">
  <id name="id">
    <generator class="increment" />
  </id>

  <many-to-one name="foo" class="Foo" update="false" insert="false">
    <column name="FOO_ID1" />
    <column name="FOO_ID2" />
  </many-to-one>
  <many-to-one name="other" class="Other" update="false" insert="false">
    <column name="FOO_ID1" />
    <column name="FOO_ID3" />
  </many-to-one>

  <property name="text"/>
</class>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM