1
我在使用Drools时遇到问题。 我尝试从嵌套成员更新属性。更新似乎有效,但when子句不考虑它。Drools更新嵌套成员属性
我有2个Obj对象,共享相同的Cpt对象。
Cpt cpt = new Cpt();
Obj obj1 = new Obj("obj1");
obj1.setComposant("R2");
obj1.counter = cpt;
Obj obj2 = new Obj("obj2");
obj2.setComposant("R2");
obj2.counter = cpt;
kSession.insert(obj2);
kSession.insert(obj1);
我的规则是定义为:
rule "R2"
when
m : Obj(composant == "R2" && counter.value == 0)
then
System.out.println(m.getName() + " " + m.getCounter().getValue());
m.getCounter().increment();
end
我期待OBJ1到时子句匹配,则更新计数器(从0到1)的值。所以Obj2不应该与where子句匹配。 但事实上,确实如此,即使显示是如我所料:
obj1 0
obj2 1
有人可以解释我什么我做错了?