estoy teniendo un problema extraño con drools:drools regla de flujo
tengo las siguientes reglas:
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
inserto en mi sesión de myData y myData.getMyDog()
, donde myData.getMyDog.isBaby==false
La primera se dispara la regla y mi perro se convertirá en un bebé. Luego, el segundo se dispara, e incluso se imprime verdadero. (Incluso si la condición fuera falsa)
Y cuando pruebo después de activar todas las reglas, myDog en myData está configurado para ser un bebé.
¿Qué estoy haciendo mal aquí? ¿Por qué se dispara la segunda regla? es el problema en la sesión (con estado en mi caso)?
Creo que tengo que decir que modifico myData: myDog en alguna parte, pero no estoy seguro de dónde.
Espero que mi pregunta sea clara, si no me lo dices.
Muchas veces lo intentaré –