5

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

<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: С Рождеством и с наступающим и Продуктивное Новый год;)

ответ

2

<key> может содержать несколько <column> элементов:

<key> 
    <column name = "id1" /> 
    <column name = "id2" /> 
    <column name = "id3" /> 
</key> 
+1

Привет axtavt, я последовал ваши инструкции и это решило проблему с множественностью, но произошло другое исключение, так как у меня есть два идентификатора в TABLE2 (id1, id2): «org.hibernate.MappingException: Внешний ключ (FK: TABLE2 [id1, id2])) должен иметь одинаковое число r столбцов в качестве ссылочного первичного ключа (TABLE1 [id3]) ". – despot

+1

Я попытался предоставить фиктивный столбец, как описано здесь https://forum.hibernate.org/viewtopic.php?p=2229088&sid=a709d63dc318557b72b76366b8d7b804 (), но я получил: "org.hibernate.MappingException: внешний ключ (FK: TABLE2 [id1, id2, id3])) должен иметь такое же количество столбцов, что и ссылочный первичный ключ (TABLE1 [id3])". Любое предложение? – despot

+0

@despot Привет, прошло много времени, решили ли вы эту проблему? Если да, можете ли вы рассказать, как это сделать? Теперь у меня такая же проблема :) –

 Смежные вопросы

  • Нет связанных вопросов^_^