1

getJdbcTemplate().query から返されたオブジェクトのリストがあります。

このように見える

object(test,test,test,1)
object(test,test,test,2)
object(test,test,test,3)

これらをこのような 1 つのオブジェクトに置き換えるにはどうすればよいですか

object(test,test,test,list<t>({1,2,3}))

私のロープのような疑似オブジェクト表現からアイデアを得ることができれば幸いです:)

4

4 に答える 4

1

JdbcTemplate行を処理するためRowMapper、値を抽出してカスタムタイプのリストに変換する必要があります(この構造に対応するクラスを実装しますobject(test,test,test,1))。次に、抽出された値を処理し、リスト値から新しいオブジェクトをアセンブルできます。

参照:

于 2011-02-08T14:17:31.920 に答える
1

RowMapper使用すると少し痛いと思います。おそらく、次のようなことができます(ちなみに、これは私の擬似です):-

List<Map> rows = getJdbcTemplate().queryForList(sql);

MyObject obj = null;

for (Map row : rows) {
    // configure the first 3 fields upon object creation.
    if (obj == null) {
        obj = new MyObject(row.get("firstField"), row.get("secondField"), row.get("thirdField"));
    }   

    // basically add each item into the list 
    obj.addToList(row.get("fourthField"));
}
于 2011-02-08T14:22:45.753 に答える
0
于 2011-02-08T14:16:17.113 に答える
0

オブジェクトモデルを拡張します。

個々の値の引数を使用して作成しているものと同様の新しいオブジェクトを作成する必要があります。このオブジェクトは、代わりにリストまたはコレクションを最後の引数として取ります。そこに単一の値を格納する代わりに、オブジェクトはそこにリストまたはコレクションを格納します。オブジェクトが作成された後、このリストまたはコレクションが不変になる場合は、データをint[]保存する前にデータを変更することを検討する必要があります。

次に、この新しいオブジェクトで必要なメソッドを作成します。古いオブジェクトの配列を返すメソッドを作成することもできます。各オブジェクトには1つの値しかありません。

于 2011-02-08T14:17:16.853 に答える