1

私たちのアプリケーションには、HibernateによってロードされたPOJOのプロパティを手動で反復し、それらのプロパティをそのオブジェクトの新しいインスタンスに割り当ててから保存するルーチンがあります。

例えば

Class TestClass{
    Integer a;
    String b;

    public void setA(Integer a){
        this.a = a;
    }
    public Integer getA(){
        return a;
    }
    ...
}

アクションでそれはします

TestClass objectOne = testDao.get(id);
TestClass objectTwo = new TestClass();

そして、反復は次のようになります

objectOne.setA(objectTwo.getA());
objectOne.setB(objectTwo.getB());

実際のアプリケーションでは、これらのオブジェクトには約20のプロパティがあるため、objectOneの各プロパティを反復処理してObjectTwoに設定するより効率的な方法があるかどうか疑問に思っています。

どうもありがとうございました。

4

2 に答える 2

4

もちろん。Apache Commons BeanUtils ライブラリを確認してください。そこで使用できますcopyProperties(Object dest, Object orig)

于 2012-05-04T16:16:11.313 に答える
1

Commons ライブラリを使用したくない場合は、リフレクションを使用してループでそれを行うことができますが、ライブラリを既存のライブラリに追加することに問題がない場合は、試行済みのテスト済みのコードを使用する方が賢明な選択のようです。応用。

編集:

これで十分です

http://java.sun.com/developer/technicalArticles/ALT/Reflection/

このソリューションと ApacheCommons のパフォーマンスについてはわかりませんが、大きな違いはないと思います。

于 2012-05-04T17:03:52.373 に答える