Отображение гибернации составного ключа один-к-одному - PullRequest
0 голосов
/ 18 октября 2018

Можно ли иметь одноранговое отображение XML в режиме гибернации, когда у меня есть составной ключ на одной таблице, а в другой таблице только 1 pk?Я получаю сообщение об ошибке «Внешний ключ должен иметь такое же количество столбцов, на которое ссылается первичный ключ», когда у меня есть следующие настройки (обратите внимание, что я только пытаюсь отобразить B и C; A для контекста): Таблица A имеет 1ко многим отношениям с Б. У одного к одному отношения с C:

Таблица A:

+----+--------+
|    | Column |
+----+--------+
| PK | id1    |
|    |        |
+----+--------+

Таблица B:

+----+--------+
|    | Column |
+----+--------+
| PK | id2    |
| FK | id1    |
+----+--------+

Таблица C:

+-------+--------+
|       | Column |
+-------+--------+
| PK FK | id1    |
| PK FK | id2    |
+-------+--------+

XML

<hibernate-mapping>
     <class name="CClass" table="C">
         <composite-id>
             <key-property name="id1" column="id1"/>
             <key-property name="id2" column="id2"/>
         </composite-id>
        <one-to-one name="bs" class="BClass" constrained="true"/>
        </class>
</hibernate-mapping>

<hibernate-mapping>
    <class name="BClass" table="B">
        <id name="id" column="id2" >
           <generator class="native"/>
        </id>
     <one-to-one name="cs" class="CClass" constrained="true"/>
     <many-to-one name="id1" column="id1" class="A"
     </class>
</hibernate-mapping>
...