作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我需要将动态的多个客户 ID 传递给 mule 中的选择查询。所以我想出了一个逗号分隔的字符串,其中包含我的客户 ID,例如:字符串 custid=1001,1002 .我正在使用 groovy evalutor 将字符串值提取到 JDBC 查询中。但是在执行查询后我收到了一个空的有效负载。也适用于像 这样的单值字符串字符串 Custid =1001 我得到了想要的结果。因此,在 Mule 中,它是否为字符串附加单引号,例如 '1001,1002' ,是什么导致了这个问题?
请帮我解决这个问题。另外请让我知道是否有其他方法可以解决这个问题?
这是我的代码片段:
<jdbc:query key="getCustID" value="SELECT CUSTID,CUSTTYPE FROM CUSTINFO WHERE CUSTID IN (#[groovy:payload.custid]) "/>
最佳答案
Mule 替换表达式,如 #[groovy:payload.custid]
带有绑定(bind)参数,所以这就是它不起作用的原因:逗号分隔的值被替换为单个参数。
对于您想要做的事情,我没有很好的解决方案。一种方法是使用已在 JDBC connector queries
map 上解析的 ID 列表注册查询。就在使用它之前。您将生成一个唯一的查询名称(如 UUID)以确保它仅由当前线程使用,并且您还需要将其从 queries
中删除。使用后映射以避免内存泄漏。
虽然这非常hacky,但希望其他人会有更好的答案......
关于mule - 如何在 Mule 中将逗号分隔字符串传递给 JDBC 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11434619/
我是一名优秀的程序员,十分优秀!