首页 > 解决方案 > Apache Camel:如何在 from 之后动态插入数据?

问题描述

有sql:

private static final String MARS_SQL_TEMPLATE_TWO = "select\n" +
            " id_delivery_area,\n" +
            " id_country,\n" +
            " id_gate_sites_group,\n" +
            " free_shipping_bill,\n" +
            " id_territory,\n" +
            " price,\n" +
            " id_mtt_type,\n" +
            " id_gt_service_level,\n" +
            " extract (hour from delivery_trigger_time)\n" +
            " ||':'\n" +
            " ||extract (minute from delivery_trigger_time)\n" +
            " delivery_trigger_time,\n" +
            " delivery_period_to_hours,\n" +
            " delivery_period_from_days,\n" +
            " delivery_period_to_days,\n" +
            " '%s' as brand,\n" +
            " '%s' as country\n" +
            " from :param ";

代替 :param 我想在路由调用期间添加一个值:

List<MarsDeliveryArea> finalList = (List<MarsDeliveryArea>) routeService.executeRoute(MARS_ROUTE, "param", b);

   public Object executeRoute(String endpointName, String headerKey, Object headerValue) {
        val template = DefaultFluentProducerTemplate.on(camelContext);
        if (headerKey != null) template.withHeader(headerKey, headerValue);
        return template.to("direct://" + endpointName).request();
    }

它不起作用。

我怎样才能做到这一点?非常感谢您的帮助

标签: javasqlapache-camel

解决方案


在“... from”之后立即结束您的模板,并在您的路线中使用类似下面的内容,也许?

.to("sql:" + MARS_SQL_TEMPLATE_TWO + ":#${header.param}")

推荐阅读