Tôi đang gặp một vấn đề xa lạ với Drools:Drools cai trị chảy
tôi có các quy tắc sau:
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
tôi chèn trong phiên tôi myData và myData.getMyDog()
, nơi myData.getMyDog.isBaby==false
Đầu tiên quy tắc được kích hoạt và con chó của tôi được đặt là một đứa trẻ. Sau đó, lần thứ hai được kích hoạt, và thậm chí nó in đúng (ngay cả khi điều kiện là sai)
Và khi tôi kiểm tra sau khi kích hoạt tất cả các quy tắc, myDog trong myData được đặt thành một em bé.
Tôi đang làm gì sai ở đây? Tại sao quy tắc thứ hai được kích hoạt? là vấn đề trong phiên làm việc (trong trường hợp của tôi)?
Tôi nghĩ rằng tôi cần phải nói rằng tôi sửa đổi myData: myDog ở đâu đó, nhưng tôi không chắc chắn ở đâu.
Hy vọng câu hỏi của tôi là rõ ràng, nếu không cho tôi biết.
Thx rất nhiều tôi sẽ cố gắng –