执行规则时如何更改流口水对象状态

时间:2019-07-17 09:35:19

标签: java drools

执行时不会更新Drools对象。

我尝试在执行规则的过程中更改流口水的事实,但是,即使我使用update(),该对象的属性在LHS中也不会更新。

(1)我创建了一个新对象,如: Person p = new Person(8,“ female”);

(2)我假设,尽管通过rule_1,此人的性别将变为“男性”

rule "rule_1"
salience 1
lock-on-active true
when
   $person : Person (age < 10)
then
    $person.gender = "male";
    update($person);
end

rule "rule_2"
salience 1
lock-on-active true
when
   $person : Person (gender == "male" )
then
    System.out.println($person.gender);
    update($person);
end

规则_2不执行。谁能帮助我

1 个答案:

答案 0 :(得分:0)

问题是您使用的lock-on-active属性。它基本上是在执行规则时防止新激活规则。

other questionlock-on-active的工作方式的解释要好一些。

希望有帮助,