Mule-java.lang.ClassCastException:java.util.LinkedHashMap不能强制转换为java.util.List

Mule-java.lang.ClassCastException:java.util.LinkedHashMap不能强制转换为java.util.List,mule,mule-studio,mule-el,Mule,Mule Studio,Mule El,我正在使用一个数据映射器,它将xml文件映射到映射数组。记录日志时,我得到以下结果: [{Name=xyz, Salary=30000, Tax=1000}, {Name=BOS, Salary=200, Tax=75}] 从上面生成的映射中,我尝试根据where子句向数据库插入值。我的查询如下所示: UPDATE employee SET Salary =#[message.payload[0]['Salary']] WHERE name = #[message.payload[0]['N

我正在使用一个数据映射器,它将xml文件映射到映射数组。记录日志时,我得到以下结果:

[{Name=xyz, Salary=30000, Tax=1000}, {Name=BOS, Salary=200, Tax=75}]
从上面生成的映射中,我尝试根据where子句向数据库插入值。我的查询如下所示:

UPDATE employee SET Salary =#[message.payload[0]['Salary']]  WHERE name = #[message.payload[0]['Name']]
这里我得到了一个异常,它看起来像:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.List
at org.mvel2.optimizers.impl.refl.nodes.ListAccessor.getValue(ListAccessor.java:40)
at org.mvel2.optimizers.impl.refl.nodes.GetterAccessor.getValue(GetterAccessor.java:40)
at org.mvel2.optimizers.impl.refl.nodes.VariableAccessor.getValue(VariableAccessor.java:37)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
在使用#[message.payload[0]['Salary']]]进行日志记录时,我正确获取了与之关联的值。但查询中的相同表达式对我不起作用

等待你的答复

谢谢。

在使用查询之前,先获取第一项(或拆分数组):

<set-payload value="#[payload[0]]" />
#[message.payload['Salary']]

好吧,没关系,但我还是很困惑,为什么#[message.payload[0]['Salary']]不起作用。在logger中,它为键“Salary”提供了正确的值。