2011-01-27 1 views
1

これは私がearlierと提出した質問の続きです。SessionFactoryで管理されるすべての結合テーブルを取得します。

現時点では、ソリューションのテクニックを使用して以前の投稿にSessionFactoryで管理されているすべてのテーブルを取得すると、(期待どおり)結合テーブルは含まれません。 SessionFactoryに知られているすべてのジョインテーブルを簡単に取得する方法はありますか、すべてのEntityクラスを調べて、@JoinTableアノテーションをすべて見つけなければなりませんか?ここで

答えて

2

私が間違っているが、それだけでエンティティ・クラスが別のエンティティクラスに参加するために起こるかどうかを教えてくれていない場合howto

ClassMetadata cm = sessionFactory.getClassMetadata(className); 

if (Joinable.class.isInstance(cm)) ... 
+0

は私を正しいですか? Joinテーブルの名前は必ずしも必要ではありませんか? – digiarnie

+0

私はあなたにマップを与えるgetAllClassMetaData()を呼び出すことによって、上記のソリューションの一部を使用しました。このMapのkeySet()は、のSetを返します。これは、Class.forName(String)を反復して使用し、リフレクトを使用して結合テーブルの名前を検索するだけです。 – digiarnie

関連する問題