【问题标题】:apache camel sql : request with likeapache camel sql:请求类似
【发布时间】:2019-05-10 04:48:26
【问题描述】:

你好,我遇到了这个问题,我有一个查询可以设置 $ {body} 的值

<to uri="sql:SELECT distinct substr(cust_account,4,3) as TypeCompte from bnaservice.customer_accounts where cust_account like '#${body[0]}%' order by cust_account?dataSource=moodleDB"/>
<to uri="bean:tn.ngtrend.CompteClientRest.Transformer?method=ToXml(Exchange)"/>

$ {body} 的值等于 001,但每次我执行查询时它都会给我一个结果 null

我认为 ${body} 和% 之间的串联是错误的

有谁可以帮我解决这个问题,谢谢

【问题讨论】:

  • 如果删除#会发生什么?
  • 同样的问题,结果为null

标签: java sql apache-camel esb blueprint-osgi


【解决方案1】:

您可以尝试使用冒号吗?因为body 就像一个命名参数。

like ':#${body[0]}%'

如果这仍然不起作用,我会尝试在 Exchange 属性中连接表达式和 %,然后在 SQL 语句中调用该属性

【讨论】:

    【解决方案2】:

    最后我用这个 sn-p 得到了这个:

    (虽然是 scala 但实际上是一样的)

    transform("%" + _.in[String] + "%")
    to("sql:SELECT * FROM quotes WHERE quote LIKE :#${body} ORDER BY RANDOM() LIMIT 1")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多