我在與Drools的一個奇怪的問題:Drools的規則流
我有以下規則:
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的某處,但我不確定它在哪裏。
希望我的問題很明確,如果不告訴我的話。
Thx很多我會嘗試 –