我对Drools很新,并将其用于快速原型。 我有一个有两个哈希图的Pojo类。
public class MyTestClass
{
private Map<String, Integer> currMap= new HashMap<>();
private Map<String, Integer> historyMap = new HashMap<>();
}
我想在Drools中编写规则来检查两个哈希映射中的键值。一个例子如下
rule "test1"
when
$mc : MyTestClass(currMap["Name 1"] == 1, historyMap["Name 1"] == null)
then
System.out.println("Condition for Name 1 matched");
end
rule "test2"
when
$mc : MyTestClass(currMap["Name 2"] == 1, historyMap["Name 2"] == null)
then
System.out.println("Condition for Name 2 matched");
end
rule "test3"
when
$mc : MyTestClass(currMap["Name 3"] == 1, historyMap["Name 3"] == null)
then
System.out.println("Condition for Name 3 matched");
end
然而,当我运行它时,即使test1和test2规则匹配,我也只从test3获得输出。我甚至改变了test3规则来寻找一个不存在的密钥(替换了&#34;名称3和#34;带有一些垃圾字符)并且仍然仅为最后一条规则输出 - test3。在使用HashMap时,我的drl文件似乎出现了语法上的错误。
有没有人可以帮我在drl文件写入规则中使用HashMap的值?
谢谢,