0

我知道编写 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 版,谢谢!

4

1 回答 1

0

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

于 2013-03-14T08:17:04.533 回答