Составной ключ в XML-режиме гибернации со второй таблицей - PullRequest
0 голосов
/ 25 июля 2011

Во-первых, у меня нет контроля над технологией или структурой базы данных.

У меня есть объект, у которого есть другой объект в качестве составного ключа.Внутри этого составного объекта id у меня есть столбец, который мне нужно использовать, чтобы получить ДРУГОЕ значение, в частности описание.Я хотел бы иметь возможность получить описание, которое связано с этим ключом, когда я потяну объект.Вот что у меня сейчас (имена изменены, чтобы защитить невинных):

  <class name="BusinessRuleObject" table="BUSINESS_RULE_OBJECTS" schema="DB">
    <composite-id name="businessRuleObjectId" class="BusinessRuleObjectId">
      <key-property name="idCode" column="ID_CD" />
      <key-many-to-one name="businessRule" class="BusinessRule" column="BUSINESS_RULE" />
    </composite-id>
    <property name="updateDate" column="UPDATE_DT" type="timestamp" />
    <property name="updateUser" column="UPDATE_USER_ID" />
  </class>

  <class name="BusinessRule" table="BUSINESS_RULE_LOOKUP" schema="DB">
    <id name="businessRuleCode" column="BUSINESS_RULE"></id>
    <property name="description" column="DESCRIPTION_TX" />
    <property name="updateDate" column="UPDATE_DT" type="timestamp" />
    <property name="updateUser" column="UPDATE_USER_ID" />
  </class>

Что я пытаюсь сделать здесь:

  • Получить "BusinessRuleObject"
  • Уметь вызывать что-то вроде BusinessRuleObject.businessRule.description

Если неясно, в первой таблице (объектах) есть два ключа: idCode и businessRule.У второго есть одна клавиша, businessRule.

Спасибо за вашу помощь, кажется простой проблемой, просто не могу обернуться вокруг нее прямо сейчас.

1 Ответ

0 голосов
/ 26 июля 2011

Если вы уже получили BusinessRuleObject, значит, он у вас уже есть (если отображение работает должным образом).Просто получите значение:

BusinessRuleObject bo = ....;
String description = bo.businessRule.description; // Or appropriate getters

Если вы просто хотите получить описание для некоторых объектов, то HQL, аналогичный этому, должен работать:

select bo.businessRule.description from BusinessRuleObject bo 
                                   where [ your bo criteria ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...