iBatis / MyBatis - 使用自定义键和值获取结果映射而不是List

时间:2014-01-15 08:39:28

标签: java mybatis ibatis

这是我的代码:

<resultMap class="<custom_class>" id="maptoCustomClass">
         <result property="idModifiedBy" column="col2" />
     <result property="assignedTeamName" column="col3" />
      </resultMap>

      <resultMap class="java.util.HashMap" id="resultMapId">
         <result property="key" column="col1"/>
     <result property="value" resultMap="file.maptoCustomClass"/>
      </resultMap>

      <select id="fetchTaskTeamAndUser" parameterClass="java.util.HashMap"  resultMap="resultMapId">
        SELECT col1, col2, col3
        FROM schema_name.table_name
      </select>

这不起作用并且抛出“返回太多行”错误。我理解为什么。

我的问题是如何将结果作为HashMap的KEY和VALUE对获取?

e.g。我应该得到一个带有key的HashMap作为col1的值,将value作为包含col2和col3值的对象。

1 个答案:

答案 0 :(得分:1)

尝试:

Map<String,Long> mCountMap = getSqlMapClientTemplate().queryForMap("mydata", "", "key", "value");

<resultMap id="hashMapResult" class="java.util.HashMap">
    <result property="key" column="col_1"/>
    <result property="value" column="col_2"/>
</resultMap>

<select id="mydata" resultMap="hashMapResult">
    select col_1, col_2 from sometable
</select>