【问题标题】:Drools rule to find out the max value from a list of objects' list of objectsDrools 规则从对象列表的对象列表中找出最大值
【发布时间】:2013-03-07 06:37:48
【问题描述】:

我知道编写 Drools 规则以从对象列表中找到最大值是多么容易

e.g. MyBase(listOfObjects : myObjects)
     accumulate (MyObject($value : value, $value != null) from listOfObjects; $maxValue : max($value))

我的问题是,如何编写 Drools 规则以从对象列表的对象列表中找到最大值?

e.g. MyBase(listOfObjects : myObjects)
     accumulate (MyObject(anotherListOfObjects : mySmallerObjects) from listOfObjects
                 ,MySmallerObject($value : value, $value != null) from anotherListOfObjects; $maxValue : max($value))

以上都行不通。

所以基本上,我有一个对象 MyBase,它有 List<MyObjects> myObjects。在myObjects 内,我想从他们的List<MySmallerObject> mySmallerObjects 中找到最大值(跨越所有myObjects,而不仅仅是在mySmallerObjects 内)

我相信它在 Drools 中是可行的,我只需要正确的语法。

我使用的是 Drools 5.5 版,谢谢!

【问题讨论】:

    标签: java drools


    【解决方案1】:

    嗯,我会先collect 所有MySmallerObjects,然后累积collect 操作的结果。 collect 允许嵌套 from 元素。参见章节 4.8.3.7.3。 Drools 专家用户指南http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e5351 中的条件元素收集

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多