让我描述一下我的用例的抽象,这样问题的意图就会很清楚。
用例:
(i). If there is already an object objA of type A, create another obj2A of type
A.
(ii).If there are more than one object of type A, create an object objB of type
B.
我只想将 Drools 用于检查工作内存中的匹配项,因此仅用于查询部分。对象创建部分不受 Drools 控制。我只问 Drools (i) 或 (ii) 中的哪一个匹配(或两者都匹配),然后决定要做什么。
因此,首先我创建了一个 A 类型的 objA 并将其放入工作内存中。
现在我向 Drools 查询匹配项。
状态 0) 只会匹配 (i),我将创建另一个 A 类型的对象并放入工作内存中。
状态 1) 现在情况 (i) 和 (ii) 都匹配。假设我只使用 (ii) 并创建 objB 并放入工作内存中。
状态 2) 在这个阶段,Drools 是否会再次进行计算以检查条件 (i) 是否匹配,或者它将使用之前运行的查询中的匹配信息?
从理论上讲,我想知道 Drools 如何管理增量模式匹配。
- 另外,我如何要求 Drools 给我模式匹配并使用上一次运行的匹配?
- 如果 Drools 给我一个匹配并且我不使用它,例如状态 1 中的 match (i),Drools 可以将匹配保留在一边并跳过重新计算吗?
请让我知道我是否应该提供更多信息。