我正在使用将 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']]进行日志记录时,我正确地获得了与之关联的值。但是查询中的相同表达式对我不起作用。
等待你的回复。
谢谢。