使用MyBatis的Camel路由提供了HashMaps的ArrayList而不是HashMap

时间:2013-04-03 19:15:05

标签: hashmap apache-camel mybatis

在Camel路由中使用MyBatis从数据库表中选择键/值对我遇到了以下问题。

我的路线(作为内容丰富的一部分):

from("direct:resource")
   .setBody().constant(123)
   .to("mybatis:selectParameters?statementType=SelectList")
   ...;

映射器:

<select id="selectParameters" parameterType="int" resultType="java.util.HashMap">
   SELECT 
      KEY
     ,VALUE
   FROM 
      TABLE
   WHERE 
      ID=#{id}
</select>

除了主体包含HashMaps的ArrayList(每个键/值对一个)而不是一个具有n k / v对的HashMap之外,一切正常。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我认为您应该使用statementType = SelectOne,因为您只在SQL查询中选择一行。因为使用SelectList,所以总是返回List,即使SQL结果集只有一行。

您可以在此处查看可能的语句类型:http://camel.apache.org/mybatis

当然,请参阅MyBatis文档,了解有关使用MyBatis等的更多详细信息。