当前位置: 首页 > 知识库问答 >
问题:

使用MyBatis的骆驼路线提供ArrayList of HashMaps而不是HashMap

祁和通
2023-03-14

在 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>

一切都很好,除了正文包含一个哈希映射的数组列表(每个键/值对一个),而不是一个带有 n k/v 对的哈希映射。

任何帮助将不胜感激

共有1个答案

谷梁星雨
2023-03-14

我假设您应该使用语句Type=SelectOne,因为您在SQL查询中只选择一行。由于您使用 SelectList,因此始终返回 List,即使 SQL 结果集中只有 1 行也是如此。

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

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

 类似资料:
  • 问题内容: 我一直在仔细研究Apache Camel文档,试图对它的两个 最基本 概念(端点和路由)有一个具体的了解,尽管这些术语在文档中各处都使用,但是我找不到真正定义它们的参考。是以及它们的用途。尽管它们的名称听起来很明显,而且我 想 我理解它们的含义,但是现在我已被分配到一项使我深深陷入Apache Camel Land的任务,而了解这些机制的绝对至关重要是。 我的猜测是,“端点”只是一个b

  • 我正在寻找一些关于如何使用骆驼路线实现以下模式的想法: 客户端通过HTTP restendpoint调用web服务(originalService) 服务接受服务的主体,并将其作为作业提交给另一个web服务(jobService)。此辅助服务返回作业id。 使用作业id,originalService轮询jobService的时间不超过x秒。Originalservice将把提交的服务的结果返回给

  • 问题内容: 我尝试对Apache骆驼路线进行junit测试。像这样的东西: 构建器类的定义如下 “ myExportRouteProcessor”类仅从JPA存储库中获取一些数据,并将结果放入路由。我想要的是在测试类中触发此路由,以检查整个过程是否正确完成。当前,处理器未启动。我该怎么办? 问题答案: 您可以使用AdviceWithRouteBuilder#replaceFromWith直接替换测

  • 我试着为阿帕奇骆驼路线做一个jUnit测试。类似于这样: builder类的定义如下 myExportRouteProcencer类只是从JPA存储库中获取一些数据,并将结果放入路由。我想要的是在测试类中触发此路由,以检查整个过程是否正确完成。目前,处理器没有被触发。我应该做些什么?

  • 有一条骆驼路线,它被处理,异常由处理。代码如下所示: 它是有效的,并且在错误被处理后,事务有一个提交:,但是然后消息再次被放入输入队列中,事务从头开始(无尽循环)。 我们正在使用IBM MQ,我认为这种回滚是由MQ执行的,而不是从camel路线执行的。所以问题是:我能告诉MQ我处理了异常,并且它不应该再次回滚吗?

  • 嗨,我在camel中有一个JMS消费者路由,我的要求是在特定事件时停止/暂停该路由(基于某个字段值),然后使用调度器恢复该路由。为此,我创建了两个路由,一个是我的原始jms消费者路由,另一个是调度程序路由,它们恢复jms消费者路由,虽然我能够暂停路由,但第二个路由不恢复暂停的路由,它显示的状态为已启动。 以下是我的两条路线 请帮助我如何实现上述场景。

  • 我有一个Springboot应用程序,其中配置了一些驼峰路线。 我想测试从到的路由。我试过这里提到的不同东西http://camel.apache.org/camel-test.html,但似乎无法让它工作。 我正在尝试这样做: 但是我的ProducerTemplate总是。我尝试了自动连接CamelContext,但遇到一个异常,它无法解析CamelContext。但这可以通过添加到类。但是我的

  • 我正在研究一个骆驼原型,它在同一骆驼环境中使用两个起点。 第一个路由使用用于“配置”应用程序的消息。消息通过配置服务bean加载到配置存储库中: 第二个路由实现了收件人列表eip模式,将不同类型的输入消息传递给许多收件人,这些收件人从同一个配置存储库中按顺序读取: 现在出现的问题是如何同步它们,因此如果第一个路由正在处理新数据,则第二个路由“等待”。 我是Apache Camel的新手,对如何处理