在drools drl中使用POJO的hashmap

时间:2016-06-21 13:56:55

标签: java hashmap drools

我对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的值?

谢谢,

0 个答案:

没有答案