Drools规则不正确,如何使用'和'?

时间:2014-11-10 17:41:50

标签: jboss drools rule-engine rule drools-planner

我正在尝试以下工作:

rule "userCount"
    when
        $user : User()
        $minutes : Integer()
            from accumulate(
                            MinutesPerUser( user == $user, $time : time) 
                            and Time(this == $time),
                            sum(1)
                           )
    then
        System.out.println( $minutes );
end

但似乎and Time(this == $user)部分永远不会成立。如果我删除那部分,我会得到一些println输出。

上述代码有什么问题?

1 个答案:

答案 0 :(得分:0)

不了解Java类的关系,说明确定的事实有点困难。但是来自

 $user : User()
 //...
 and Time(this == $user),

很明显,Time必须是User的超类,反之亦然:否则就无法满足此约束。

我不知道你应该写什么,因为没有说明应该做什么。

BTW,sum(1)看起来很可疑,因为count(1)可以更好地表达,产生相同的结果。