我有一条说
的规则rule "bcs-set"
when
Param( Feature == "BCS", Name == "primary" )
Param( Feature == "BCS", Name == "seconday" )
then
insert ("addition")
end
我创建了两个Param对象,但似乎drools无法找到两个Param对象。
如果我取出第一个Param检查它可以工作,但不能同时遵守规则中的两个Param检查。
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 :(得分:1)
你很可能做过像
这样的事情Param p = new Param();
p.setFeature( "BCS" );
p.setName( "primary" );
kSession.insert( p );
p.setName( "secondary" );
kSession.insert( p );
kSession.fireAllRules();
请注意,插入不会复制;它只是使用参考。 - 这是应该做的:
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();
当然,您可能已经做了其他事情,但这与事实有关,因为您已经将它们联系起来。可悲的是,你已经省略了这个非常重要的部分。