Сопоставить составной ключ внутри составного ключа hibernate xml - PullRequest
2 голосов
/ 16 августа 2011

Это то, что я хотел бы сделать, сопоставить объект с другой таблицей, имеющей те же первичные ключи. Ниже приведен пример, в основном у меня есть один объект с составным ключом, который имеет составной ключ для ДРУГОЙ таблицы, но я не знаю, как включить оба для создания правильного ключа объекта. Я выделил строку, которая является неправильной, она включает только одно из свойств ключа.

  <class name="BusinessRuleObject" table="BUSINESS_RULE_OBJECTS" schema="DB">
    <composite-id name="businessRuleObjectId" class="BusinessRuleObjectId">
      <key-property name="sameIdCode" column="ID_CD" />
      **<key-many-to-one name="businessRule" class="BusinessRule" column="BUSINESS_RULE" />**
    </composite-id>
    <!-- ... STUFF GOES HERE -->
  </class>

  <class name="BusinessRule" table="BUSINESS_RULE_STRINGS" schema="DB">
    <composite-id name="businessRule2ID" class="BusinessRule2ID">
      <key-property name="sameIdCode" column="ID_CD" />
      <key-property name="businessRuleCode" column="BUSINESS_RULE" />
    </composite-id>
    <!-- TOTALLY DIFFERENT STUFF GOES HERE -->
   </class>

1 Ответ

5 голосов
/ 23 августа 2011

Включено только одно свойство составного внешнего ключа businessRule, поскольку <key-many-to-one объявляет только один столбец BUSINESS_RULE. Он должен объявить два столбца составного ключа, на который он ссылается BUSINESS_RULE и ID_CD в вашем примере. Добавив столбец ID_CD к элементу <key-many-to-one, необходимо удалить или переименовать столбец элемента <key-property name="sameIdCode" column="ID_CD" />.

Ассоциация <key-many-to-one с businessRule объекта должна отображаться следующим образом:

<composite-id name="businessRuleObjectId" class="BusinessRuleObjectId"> 

  <key-many-to-one name="businessRule" class="BusinessRule" >
     <column name="ID_CD" />
     <column name="BUSINESS_RULE" />
  </key-many-to-one>

</composite-id> 

Справочная документация гибернации
5.1.7. Композиционно-ID
Компоненты в качестве составных идентификаторов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...