0

我问了一个有点类似的问题,但它的表述不正确。我将尝试再解释一次。

下面是我的用例,非常抽象。

(i). If there is at least one objA of type A, create another obj2A of type A.
(ii) If there are two or more object of type A, create an object objB of type B.

我的 .drl 文件中有两条规则,用于检查两个用例的工作内存中的“if”条件。假设规则被命名为 rule1 和 rule2。在这些规则中,我使用 Drools 查询。我在java端创建对象(A型和B型)并触发规则。所以基本上,在规则的“那么”部分,我没有创建任何对象,这样规则可能会再次开始触发。

首先,我创建了一个 A 类型的 objA 并将其放入工作内存中。

现在我正在违反规则。

fire1) 只有 rule1 匹配,我将创建另一个 A 类型的对象并放入工作内存中。再次开火。

fire2) 现在出现了 rule1 和 rule2 都匹配的情况。

这是我的两个问题。

  1. 在 fire1 和 fire2 中,rule1 匹配类型 A 的对象。有没有办法从 Drools 获取这些模式匹配相似或不同的信息?

  2. 有没有办法告诉 Drools 在第二次触发 (fire2) 时不要评估 rule1 ?

如果我应该提供更多细节,请告诉我。

4

0 回答 0