我无法从查询结果中获取ID。 骡子版本是3.5。 这是流程:
<flow name="mule.activity">
<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="10000"/>
<db:select config-ref="JSDB" doc:name="Database">
<db:parameterized-query><![CDATA[SELECT ID FROM ACTIVITY where rownum = 1]]></db:parameterized-query>
</db:select>
</poll>
<logger message="Current payload is #[payload]" level="DEBUG" category="mule.activity" doc:name="Logger"/>
<logger message="Current payload size is #[payload.size()]" level="DEBUG" category="mule.activity" doc:name="Logger"/>
<logger message="Current id is #[payload.ID]" level="DEBUG" category="mule.activity" doc:name="Logger"/>
</flow>
这是日志
[2015-03-18 13:13:36,875] DEBUG: Current payload is [{ID=1363230}]
[2015-03-18 13:13:36,881] DEBUG: Current payload size is 1
[2015-03-18 13:13:36,888] DEBUG: id is null
非常感谢任何帮助。
答案 0 :(得分:1)
具有DB连接器的查询的返回有效负载始终是列表,无论是0,1还是n个元素。 你的MEL表达式假设它是一张地图:#[payload.ID] 您应该执行#[payload.get(0).ID]
之类的操作然后我再建议你不要使用这个表格来访问地图
而是
在第一个示例中,如果您在尝试访问地图的ID时出错,则错误并不总是描述性的。
HTH