Hibernate: запрос метаданных - PullRequest
0 голосов
/ 05 июля 2011

В настоящее время я работаю над решением для автоматического создания форм ExtJS, основанных на отображении гибернации (для этого я использую обратный инжиниринг hibernate на основе @Annotations).

В Hibernate есть

getPropertiesInterator() 

http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/mapping/PersistentClass.html#getPropertyIterator%28%29

функция для этого.Который доступен вот так

((LocalSessionFactoryBean)sessionFactory).getConfiguration().getClassMapping(<Classname>.class.getName())

Который перечисляет свойства таблицы.Я использую эту информацию, чтобы генерировать из нее ExtJS-входы

varchar => input text => textarea и т. Д.

Мой вопрос: есть ли другой (возможно, лучший) способ получить это?информация из моей спящей конфигурации?

С уважением

JS

1 Ответ

2 голосов
/ 31 января 2012

В итоге я использовал

ClassMetadata hibernateMetadata = session.getSessionFactory().getClassMetadata(fullClassName);

Чтобы получить метаданные либо [String] ClassName, либо Class.class

С этой информацией вы можете сделать что-то вроде этого ...

String[] propertyNames = hibernateMetadata.getPropertyNames();
Type[] propertyTypes = hibernateMetadata.getPropertyTypes();

И анализирует эту информацию позже.

См.

http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/SessionFactory.html#getClassMetadata%28java.lang.String%29

для получения дополнительной информации.

У Hibernate есть даже пример для этого в их документах ...

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/objectstate.html#objectstate-metadata

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