在drools 6 when子句中比较不同的项目与集合

时间:2015-09-04 09:32:06

标签: drools rule-engine rule eval-when

我在互联网上搜索过但无法找到解决我们目前面临的问题的解决方案(6.2.0)。

假设我有这样的规则:

when
    $list: ProductList()
    $product: Product() from $list
    $product2: Product(this != product) from $list
then
    // do something
end

如果$ list包含2个产品A和B,则此规则将触发组合:

  1. A-B
  2. B-A
  3. 出于某种原因,我无法仅将规则发射一次(仅限A-B或仅B-A)

    有人知道是否有标准方法可以达到预期效果吗?

    非常感谢提前!

    此致

1 个答案:

答案 0 :(得分:0)

您需要具有可比且唯一的Product属性。我假设一个产品编号:

rule comp2prod
when
  $list: ProductList()
  $product: Product( $pn: productNumber ) from $list
  $product2: Product( productNumber > $pn ) from $list
then
  // do something
end