Как мне объединить два столбца в файле сопоставления гибернации с помощью тега ?

Мне нужно сопоставить один класс с двумя таблицами (обе с несколькими первичными ключами столбцов). Скажем, TABLE1 имеет id1, id2, id3, а TABLE2 имеет id1, id2 в качестве первичных ключей. Теперь при написании файла сопоставления я бы сделал что-то вроде следующего:

<hibernate-mapping package="beans">
  <class name="TABLE1Class" table="TABLE1">
    <composite-id name="table1PK" class="TABLE1PKClass">
        <key-many-to-one name="id1" class="ID1Class" column="id1"/>
        <key-many-to-one name="id2" class="ID2Class" column="id2"/>
        <key-many-to-one name="id3" class="ID3Class" column="id3"/>
    </composite-id>
    <property name="someProperty" type="integer" not-null="true" column="x"/>
    <join table="TABLE2">
        <key column="id1" />
        <!-- <key column="id2"/> The join tag accepts only one key tag!!! 
How do I map the second key??? -->
        <property name="propertyFromTable2" type="float" not-null="true"/>
    </join>
  </class>
</hibernate-mapping>

Как видите, тег соединения принимает только один ключевой тег! Как сопоставить второй идентификатор?

С уважением,
s говорят, что TABLE1 имеет id1, id2, id3, а TABLE2 имеет id1, id2 в качестве первичных ключей. Теперь при написании файла сопоставления я бы ...

Мне нужно сопоставить один класс с двумя таблицами (обе с несколькими первичными ключами столбцов). Скажем, TABLE1 имеет id1, id2, id3, а TABLE2 имеет id1, id2 в качестве первичных ключей. Теперь при написании файла сопоставления я бы сделал что-то вроде следующего:

<hibernate-mapping package="beans">
  <class name="TABLE1Class" table="TABLE1">
    <composite-id name="table1PK" class="TABLE1PKClass">
        <key-many-to-one name="id1" class="ID1Class" column="id1"/>
        <key-many-to-one name="id2" class="ID2Class" column="id2"/>
        <key-many-to-one name="id3" class="ID3Class" column="id3"/>
    </composite-id>
    <property name="someProperty" type="integer" not-null="true" column="x"/>
    <join table="TABLE2">
        <key column="id1" />
        <!-- <key column="id2"/> The join tag accepts only one key tag!!! 
How do I map the second key??? -->
        <property name="propertyFromTable2" type="float" not-null="true"/>
    </join>
  </class>
</hibernate-mapping>

Как видите, тег соединения принимает только один ключевой тег! Как сопоставить второй идентификатор?

С уважением,
s говорят, что TABLE1 имеет id1, id2, id3, а TABLE2 имеет id1, id2 в качестве первичных ключей. Теперь при написании файла сопоставления я бы ...

Мне нужно сопоставить один класс с двумя таблицами (обе с несколькими первичными ключами столбцов). Скажем, TABLE1 имеет id1, id2, id3, а TABLE2 имеет id1, id2 в качестве первичных ключей. Теперь при написании файла сопоставления я бы сделал что-то вроде следующего:

<hibernate-mapping package="beans">
  <class name="TABLE1Class" table="TABLE1">
    <composite-id name="table1PK" class="TABLE1PKClass">
        <key-many-to-one name="id1" class="ID1Class" column="id1"/>
        <key-many-to-one name="id2" class="ID2Class" column="id2"/>
        <key-many-to-one name="id3" class="ID3Class" column="id3"/>
    </composite-id>
    <property name="someProperty" type="integer" not-null="true" column="x"/>
    <join table="TABLE2">
        <key column="id1" />
        <!-- <key column="id2"/> The join tag accepts only one key tag!!! 
How do I map the second key??? -->
        <property name="propertyFromTable2" type="float" not-null="true"/>
    </join>
  </class>
</hibernate-mapping>

Как видите, тег соединения принимает только один ключевой тег! Как сопоставить второй идентификатор?

С уважением,

<hibernate-mapping package="beans">
  <class name="TABLE1Class" table="TABLE1">
    <composite-id name="table1PK" class="TABLE1PKClass">
        <key-many-to-one name="id1" class="ID1Class" column="id1"/>
        <key-many-to-one name="id2" class="ID2Class" column="id2"/>
        <key-many-to-one name="id3" class="ID3Class" column="id3"/>
    </composite-id>
    <property name="someProperty" type="integer" not-null="true" column="x"/>
    <join table="TABLE2">
        <key column="id1" />
        <!-- <key column="id2"/> The join tag accepts only one key tag!!! 
How do I map the second key??? -->
        <property name="propertyFromTable2" type="float" not-null="true"/>
    </join>
  </class>
</hibernate-mapping>

Как видите, тег соединения принимает только один ключевой тег! Как сопоставить второй идентификатор?

С уважением,

<hibernate-mapping package="beans">
  <class name="TABLE1Class" table="TABLE1">
    <composite-id name="table1PK" class="TABLE1PKClass">
        <key-many-to-one name="id1" class="ID1Class" column="id1"/>
        <key-many-to-one name="id2" class="ID2Class" column="id2"/>
        <key-many-to-one name="id3" class="ID3Class" column="id3"/>
    </composite-id>
    <property name="someProperty" type="integer" not-null="true" column="x"/>
    <join table="TABLE2">
        <key column="id1" />
        <!-- <key column="id2"/> The join tag accepts only one key tag!!! 
How do I map the second key??? -->
        <property name="propertyFromTable2" type="float" not-null="true"/>
    </join>
  </class>
</hibernate-mapping>

Как видите, тег соединения принимает только один ключевой тег! Как сопоставить второй идентификатор?

С уважением,
Деспот
PS: С Рождеством и счастливым и продуктивным Новым годом;)

7
задан Sean Patrick Floyd 2 January 2011 в 12:41
поделиться