2012-07-11 57 views
3

这里我需要将动态多个客户ID传递给mule中的select查询。所以我想出了一个逗号分隔的字符串,其中包含我的客户ID,例如:String custid = 1001,1002。我使用groovy evalutor将字符串值提取到JDBC查询。但我收到一个空执行查询后的有效载荷。对于单个值字符串,如String Custid = 1001我收到了所需的结果。因此,在Mule中,是否为字符串追加单引号,如'1001,1002',这会导致此问题?如何将逗号分隔字符串传递给Mule中的JDBC查询

请帮我解决这个问题。请让我知道是否有其他方法可以解决这个问题?

这里是我的代码片段:

<jdbc:query key="getCustID" value="SELECT CUSTID,CUSTTYPE FROM CUSTINFO WHERE CUSTID IN (#[groovy:payload.custid]) "/> 

回答

1

骡取代表情,像#[groovy:payload.custid]与绑定参数,所以这就是为什么它不工作:昏迷分隔值被替换为单个参数。

我没有一个很好的解决方案,你想要做什么。一种方法是在使用之前将查询注册到JDBC connector queries map已解决的ID列表。您将生成一个唯一的查询名称(如UUID)以确保它仅由当前线程使用,并且您还需要在使用后将其从queries映射中移除以避免内存泄漏。

虽然这很哈希,但希望别人能有更好的答案...

相关问题