我正在通过 HTTP 请求数组列表 id 发送查询参数的数组列表[1234,3442,9489,9498]
<http:request method="GET" config-ref="HTTP_Request_configuration"
path="${p.path}">
<http:query-params><![CDATA[#[output application/java
--- {"id" : payload }]]]>
</http:query-params>
我收到以下错误:
错误:java.util.ArrayList 无法转换为 > java.lang.String
注意:如果我为每个发送它们,它会按预期工作。但我想使用IN
数据库中的运算符通过查询字符串参数将它们作为列表传递
选择查询:
<flow name="query database" >
<set-variable value="#[attributes.queryParams.'id']" doc:name="ID" variableName="ID"/>
<db:select doc:name="Get data" config-ref="Db Connection">
<db:sql >
SELECT * from Mytable where id in ( :Ref) </db:sql>
<db:input-parameters ><![CDATA[#[{
Ref: vars.ID
}]]]></db:input-parameters>
</db:select>
解决方法:数组列表转换为1234,3442,9489,9498
使用 dataweave 函数reduce($+$$)
,但返回错误
关于如何通过查询参数传递带有逗号分隔值的数组列表并在IN
DB 查询的子句中使用它们的任何想法
编辑: (payload joinBy ", ") as String 帮助我将这些值作为字符串传递,还更改了 RAML 中的类型。
现在,我如何将这些值传递给 DB toIN
子句