【问题标题】:Drools - Check if there are multiple events with different properties in wmDrools - 检查 wm 中是否有多个具有不同属性的事件
【发布时间】:2017-09-28 17:54:32
【问题描述】:

我需要关于为 Drools 编写规则以检查不同值的建议。

我有这样一个事件:

public class Event {
    int propertyA;
    String propertyB;
}

我想检查工作内存中是否有Events,以便它们的propertyA 值相同,但它们有4+ 个不同的propertyB 值。

例如:如果Event 是一个用户,propertyA 是它的 id,propertyB 是一个 T 恤颜色,我会问:如果有一个用户穿的 T 恤颜色大于或等于到 (>=) 4 种不同的颜色。

如何实施此规则?谢谢!

【问题讨论】:

    标签: java drools rule-engine drools-fusion


    【解决方案1】:

    找到一个具有某个 A 的事件,然后从具有该 A 的所有事件中收集 B 的集合。

    $e: Event( $a: propertyA )   // $e ist the last of a group of As
    not Event( this after $e, propertyA == $a ) 
    accumulate( Event( propertyA == $a, $b: propertyB );
                $set: collectSet( $b );
                $set.size() >= 4 )
    

    【讨论】:

    • 啊,collectSet
    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多