2011-07-04 162 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