我有一个带有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()方法,这些方法应该返回您所需要的.