我有一个口水问题困扰了我一段时间。我想使用累加从 Item 对象(包含价格)列表中找出最低和最高价格。插入包含项目列表的成员对象(包含项目对象列表)。
groovy/java source pseudo code
-------------------------------
class Item {
BigDecimal price
}
class Member {
List<Item>> items
}
...
droolsStatefulSession.insert(member)
session.fireAllRules()
...
rule.drl
---------
rule "rule1"
when
member : Member ($itemList : items)
/*
*/
then
System.out.println("condition met...")
end
现在问题是在上面的规则中,如果是这样,我如何使用流口水累积功能找出具有最低价格和最高价格的项目。我不想使用 java/groovy 实用程序函数。
我看到“收集”功能允许使用“来自”,然后是数据源。我想知道“积累”是否类似于收集。
最佳答案
无需使用accumulate
,只是做一些像
Item($lowestPrice : price, $id : id)
not Item(price > $lowestPrice, id < $id)
那是如果您的项目被插入到工作内存中。
关于Drools - 使用累加找到最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181752/