java - 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();
}
它不起作用。
我怎样才能做到这一点?非常感谢您的帮助
解决方案
在“... from”之后立即结束您的模板,并在您的路线中使用类似下面的内容,也许?
.to("sql:" + MARS_SQL_TEMPLATE_TWO + ":#${header.param}")