selectの結果をMapで受け取る

以前resultMapの型をHashMapにする方法を紹介した 結果をMapで受け取る - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク が、今回のは結果をListではなく、Mapにする方法。
queryForListではなくqueryForMapを呼ぶだけの話ではあるが最近知って重宝している。

結果の"id"を元にStringがkeyで結果型TypeがvalueのMapで受け取るならば次のように記述する

  ans = (Map<String,Type>)getSqlMapClientTemplate().queryForMap("getAll", requestParam, "id" );

これは次のコードと等価

  List<Type> list = (List<Type>)getSqlMapClientTemplate().queryForList("getAll", requestParam );
  Map<String,Type> map = new HashMap<String,Type>();
  for ( Type t : list ) {
    map.put( t.getId(), t );
  }
  ans = map;

最初からマップに格納するために取得するのなら最初のコードの方が短いしいい。