2014-10-16 71 views
0

的兩個實例麻煩我有一個規則說經與規則,檢查同一類

rule "bcs-set" 
when 
Param(Feature == "BCS", Name == "primary") 
Param(Feature == "BCS", Name == "seconday") 
then 
insert ("addition") 
end 

我已經創建了兩個帕拉姆對象,但它似乎是Drools中找不到這兩個帕拉姆對象。

如果我拿出了第一個參數檢查它的工作原理,但不與兩者在規則的帕拉姆檢查。

Param類如下:

public class Param { 

    private String feature; 
    private String name; 

    public String getFeature(){ 
     return feature; 
    } 

    public void setFeature(String feature){ 
     this.feature = feature; 
    } 

    public String getName(){ 
     return name; 
    } 

    public void setName(String name){ 
     this.name = name; 
    } 

} 

任何人有任何想法?

+0

請提供您使用的插入和消防規則的代碼。這應該澄清@ laune的答案是否正確。 – Steve 2014-10-20 08:45:01

回答

1

這很可能是你做了什麼樣

Param p = new Param(); 
p.setFeature("BCS"); 
p.setName("primary"); 
kSession.insert(p); 
p.setName("secondary"); 
kSession.insert(p); 
kSession.fireAllRules(); 

注意insert不復制;它只是使用參考。 - 這是應該怎麼做:

Param p1 = new Param(); 
p1.setFeature("BCS"); 
p1.setName("primary"); 
kSession.insert(p1); 
Param p2 = new Param(); 
p2.setFeature("BCS"); 
p2.setName("secondary"); 
kSession.insert(p2); 
kSession.fireAllRules(); 

它,當然,可能你做了別的東西,但是這適合作爲您有關於他們的事實。可悲的是,你忽略了這幅非常重要的部分。