Hibernate:查询元数据

时间:2011-07-04 20:59:41

标签: hibernate extjs metadata

我正在研究一种基于的自动生成ExtJS表单的解决方案 一个hibernate映射(我使用基于@Annotations的hibernate逆向工程)。

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 =&gt;输入 text =&gt; textarea的 等

我的问题是,是否有其他(可能更好)的方法可以从我的休眠配置中获取此信息?

此致

JS

1 个答案:

答案 0 :(得分:1)

我最终使用

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

通过[String] ClassName或Class.class

获取MetaData

有了这些信息,你可以做这样的事情......

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