流口水规则流
我有一个奇怪的流口水问题:
我有以下规则:
rule "is my dog a baby?"
ruleflow-group "dog"
salience 10
when
dog : Dog(age <1 )
then
dog.setIsBaby(true);
end
rule "baby dog"
ruleflow-group "dog"
salience 9
when
myData : MyData( myDog.isBaby() == false)
then
System.out.println(myData.getMyDog().getIsBaby());
end
我在我的会话中插入 myData 和 ,其中myData.getMyDog()
myData.getMyDog.isBaby==false
第一条规则被解除,我的狗被设定为一个婴儿。然后第二个被触发,即使它打印出真实 。(即使条件是假的)
当我在触发所有规则后进行测试时,myData中的myDog被设置为一个婴儿。
我在这里做错了什么?为什么第二条规则被触发?会话中是否有问题(在我的情况下是有状态的)?
我认为我需要说我在某个地方修改了myData:myDog,但我不确定在哪里。
希望我的问题很清楚,如果不告诉我。