【问题标题】:forall always evaluates to be true [Drools]forall 总是评估为真 [Drools]
【发布时间】:2016-10-03 01:03:55
【问题描述】:

我有一个类 Application,其中有一个 CallPhones 实例列表。

class Application() {
      List<CallPhones> callPhonesList;
      ...
}

class CallPhones() {
      Integer callTimes;
      ...
}

我想在所有实例大于 10 的callTimes 时触发规则。这是规则:

rule "Application eligible"
    when
        app : Application()
        forall(CallPhones(callTimes > 10))
    then 
        // application is eligible
end

奇怪的是,规则总是触发,即使有 callTimes 为 5 的实例。我也尝试了 this question 的答案,但没有任何帮助。有什么想法吗?

【问题讨论】:

  • from app.callPhoneList 丢失,即使 : 丢失了
  • 你能举一个完整的例子吗? @piyushj

标签: java drools rules rule-engine


【解决方案1】:

应该是

rule "Application eligible"
    when
        app : Application()
        forall($temp:CallPhones(callUserTimes > 10) from app.callPhoneList)
    then 
        // application is eligible
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2018-02-24
    • 2016-01-28
    • 2016-08-25
    • 1970-01-01
    • 2018-07-01
    相关资源
    最近更新 更多