java-如何在iBatis中获得排序结果?

我有一个带有2列managerName,teamEmployee的表mgr_employee.尽管我在sql中进行了排序,但在java中却得到了未排序的resultMap.如何获得排序的地图?为什么iBatis会混淆resultMap?

<resultMap id="s_filter_defaults_ResultMap" class="java.util.HashMap">
  <result property="key" column="managerName"/>
  <result property="value" column="count"/>
</resultMap>

<select id="mCount" parameterClass="java.util.HashMap" resultMap="mcount_ResultMap">
    <![CDATA[
     select managerName, count(teamEmployee) AS count
      from mgr_employee
      group by managerName 
      order by managerName;
    ]]>
</select>

调用上述sql的Java代码:

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

由于sql中的“ order by”子句,mCountMap的排序不符合预期.
任何意见/建议,如何使resultMap排序?

解决方法:

我认为您的问题可能与所使用的Java类型有关.需要查询列表而不是Map,因为Java HashMap(我想这就是查询将返回的内容)不支持排序.
请参阅SqlMapDaoTemplate#queryForList()方法,这些方法应该返回您所需要的.

上一篇:javascript-如何使用jQuery在2个排序列表之间拖动项目?


下一篇:绑定到Linq SP的GridView排序