2011-07-04 157 views
0

我目前正在研究基于hibernate映射(我使用基于@Annotations的hibernate逆向工程)的 自动生成ExtJS表单的解决方案。休眠:查询元数据

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 =>输入 文本=> textarea的 等

我的问题是,如果有可能另一个(也许更好)的方式来进行获取此信息我的休眠配置?

问候

JS

回答

1

我结束了使用

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

要么通过[String]类名或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

休眠甚至已经为这个在他们的文档的例子...

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