Как отобразить набор объектов в Hibernate без одинаковых имен первичных ключей? - PullRequest
0 голосов
/ 19 июня 2009

У меня есть класс объектов домена, который представляет таблицу. Этот класс связан с другой таблицей, но свойство исходного класса не называется так же, как свойство целевого класса, и я не уверен, как отобразить его в спящем режиме.

Вот пример класса для набора (от одного CT до нескольких экземпляров R):

public class CT {
    // This is the property in the property-ref down below
    private String b;

    // The set of Rs I want to get - there may be none that correspond to a CT instance.
    private Set rs;
}

public class R {
    // This property is mapped to the column name below.
    private String rBc;
}

<!--Snippet of the mapping for class CT-->

 <set name="rs" lazy="true" sort="MyComparator" table="R" >
      <key column="R_COLUMN_NAME_THAT_REPRESENTS_THE_RELATIONSHIP" property-ref="b" />
      <one-to-many class="CLASS_THAT_R_IS" />
 </set>

Hibernate принимает это отображение, но когда я извлекаю набор R из экземпляра CT, который, как я знаю, должен существовать, я просто получаю пустой PersistentSet.

Обратите внимание, что вполне возможно, что для каждого экземпляра CT не может быть ни одного, ни нескольких R. Вот почему у меня есть компаратор - я не могу понять, как легко указать Hibernate, как сделать предложение ORDER BY без явного SQL (который я не решаюсь писать в отображении Hibernate.

Может ли кто-нибудь помочь мне здесь?

1 Ответ

0 голосов
/ 19 июня 2009

Возможно, проблема связана с table="R" в сопоставлении <set ..>. Это говорит hibernate использовать таблицу соединений вместо непосредственного поиска внешнего ключа в дочерней таблице. Из названий я понимаю, что вы не используете соединительную таблицу. Это правильно?

...