import java.util.Map の Entry は、汎用的に実装を作っておくと良いかもしれない。
import java.util.Map;
/**
* Map.Entry実装.
*/
public class Pair<K, V> implements Map.Entry<K, V>{
public K key;
public V value;
public Pair(){}
public Pair(K k, V v){
key = k;
value = v;
}
@Override
public K getKey(){
return key;
}
@Override
public V getValue(){
return value;
}
@Override
public V setValue(V value){
this.value = value;
return this.value;
}
}
myBatis の SQLMapper で、この Pair の List で検索結果を抽出するように書いて、、
@Select("SELECT code AS `key`, name AS value FROM items")
public List<Pair<String, String>> getItemPairs();
myBatis の SQLセッションインスタンス ====>> sqlSession とすると。。
Map<String, String> map = sqlSession.getMapper(Mapper.class).getItemPairs()
.stream().collect( ()->new HashMap<String, String>()
, (r, t)->r.put(t.key, t.value)
, (r, u)->r.putAll(u));
と、、一気に Map まで持ってきてしまう。