2011-07-04 19 views
0

私は現在、自動的に Hibernateマッピングに基づいて、ExtJSのフォームを(私は@Annotationsに基づいて、そのためにリバースエンジニアリングを休止状態使用)を生成するためのソリューションに取り組んでいます。休止状態:クエリメタデータ

Hibernateはそのための

getPropertiesInterator() 

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

funcitonを持っています。このようにアクセス可能なのは

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

表のプロパティをリストしています。私はそれのうちExtJSの入力を生成するには、この情報を使用し

varchar型=>入力 テキスト=>などのtextarea

アウトこの情報を取得するかもしれない別の(多分、より良い)方法がある場合は私の質問は、私の休止状態の設定ですか?

よろしく

JS

答えて

1

私はあなたがこのような何かを行うことができ、この情報により[String] classnameでまたはClass.class

のいずれかによってメタデータを取得するには

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

を使用して終了。 ..

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