Hibernate 3.6 classMetaData предоставляет класс составного идентификатора? - PullRequest
0 голосов
/ 02 февраля 2012

Скажем, мое отображение спящего режима имеет следующую запись

<class name="foo.Person" table="person" lazy="false">  
    <composite-id name="personId" class="foo.PersonId">
        <key-property name="FIRST_NAME" type="string" column="FIRST_NAME"/>    
        <key-property name="LAST_NAME" type="string" column="FIRST_NAME"/>    
    </composite-id>
    <property name="AGE" type="int" node="AGE" column="AGE"/>
</class>  

Можно ли каким-либо образом использовать org.hibernate.metadata.ClassMetadata или его подклассы, такие как AbstractEntityPersister SingleTableEntityPersister, чтобы найти имя класса составного идентификатора "foo.PersonId"? Я думаю, что это должно быть легко, но я просто не могу найти его, даже исследуя объект ClassMetaData в режиме отладки. Я мог бы использовать getIdentifierPropertyName и getPropertyColumnNames, чтобы найти personId и FIRST_NAME и LAST_NAME, но просто не могу получить имя класса "foo.PersonId".

Я заметил, что org.hibernate.cfg.Configuration имеет getClassMappings, и я мог видеть foo.PersonId, но я использую Spring для инициализации hibernate SessionFactory, и я не использую cfg.xml, поэтому я не знаю, как получить Экземпляр конфигурации для моих нужд.

1 Ответ

0 голосов
/ 06 февраля 2012
ClassMetaData c;
c.IdentifierType.ReturnedClass;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...