У меня странная проблема с 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
Первое правило увольняется, и моя собака настроена на то, чтобы быть ребенком. Затем второй запускается, и даже он печатает true (даже если условие было ложным)
И когда я тестирую после запуска всех правил, myDog в myData устанавливается как ребенок.
Что я здесь делаю неправильно? Почему второе правило уволено? проблема в сессии (состояние в моем случае)?
Я думаю, что мне нужно сказать, что я изменяю myData: myDog где-то, но я не уверен, где.
Надеюсь, мой вопрос ясен, если не скажу.