我有Drools将值插入数据库的规则。我想给会话一个字符串值的映射,我有必须写入的字符串值。所以在我的Java文件中,像这样:
StatefulKnowledgeSession session = ...
Map<String, String> stateToPostalCode = new HashMap<>();
stateToPostalCode.insert("Texas", "TX");
stateToPostalCode.insert("New Jersey", "NJ");
....
session.insert(stateToPostalCode);
然后我的规则可以将州转换为邮政编码。
但插入它并不起作用。我得到了一个堆栈跟踪和
的投诉java.lang.ClassCastException:java.lang.String无法强制转换为 java.lang.Boolean的
插入Map<String, Integer>
作品,但不是Map<String, String>
。我究竟做错了什么?还有另一种方法可以实现我的目标吗?
答案 0 :(得分:0)
更改规则修复了问题。这是正确的语法。
when
...
$map : Map($value: this["Texas"])