2012-04-07 6 views
0

Java Beanフィールドのオブジェクト配列を取得する方法はありますか?私はデータベーステーブル(Hibernate)を表すいくつかのBeanクラスを持っており、それらからjtableモデルのオブジェクト配列を取得する必要がありますが、これを行う唯一の方法は各クラスの各フィールドのgetXXXメソッドを呼び出すことですやらなければならないこと。Java Beanフィールドのオブジェクト配列

+0

あなたは、このための独自の方法を書いてみました。私はジェネリックメソッドを書くことができ、あなたのエンティティを一つのメソッド呼び出しから得ることができると思います。 – mbaydar

答えて

4

一般的な方法でBeanから値を抽出する場合は、イントロスペクション(パッケージ "java.lang.reflect")を調べる必要があります。ここで

は、基本的な例である:私はそれを行う

Field[] fields = ABeanClass.getDeclaredFields(); 

Object[] values = new Object[fields.length]; 

int i = 0; 

for (Field field : fields) { 
    values[i] = field.get(beanInstance); 
    i++; 
} 
+0

まだ試してみる時間はありませんが、良い解決策のようです。私はこれを試してみると答えます。 – user1091733

0

の方法は、モデルとデータベース間のすべての通信を処理する「コントローラ」クラスを使用しています。

「オブジェクト」のリストは、たとえばprivateのように作成します。List myList = null; コントローラクラスに汎用メソッドを記述します。リストを返すgetListを呼び出します。メソッドに相対クラスを渡すと、hibernateセッションを使用してリストが返されます。あなたのbeanで、これを行う

myList = myController.getList(YourBean.class); 

これはあなたのgetlistメソッドでなければなりません。

public List getList(Class c) throws BaseExceptionHandler { 
     Session session = null; 
     Transaction tx = null; 
     String query = null; 
     List list = null; 
     try { 
      query = getStringQuery(c); 
      if (query != null) { 
       session = sessFactory.openSession(); 
       tx = session.beginTransaction(); 
       list = (List) session.createQuery(query).list(); 
       tx.commit(); 
      } 
     } finally { 
      if (session != null) { 
       session.close(); 
      } 

     } 
     return list; 
    } 

CHEERS :)

+0

あなたは私の質問を誤解しているかもしれないと思います。私はBeanのフィールドのオブジェクト配列を取得したい、オブジェクトのオブジェクト配列ではなく、Hibernateが返すオブジェクトの配列を取得したい。 – user1091733

関連する問題