drools - 从 Drools 的集合中闯入
问题描述
我是 Drools 的新手,所以如果这是基本的,我很抱歉。但是我如何在 a 中间休息collect
?例如,在下面的代码中
c : Customer()
items : List( size == c.items.size )
from collect( Item( price > 10 ) from c.items )
此代码检查是否所有项目的价格 > 10。但是如果我想查看是否有任何项目的价格 > 10,我该怎么办?我可以将代码更改为,size > 0
而不是size == c.items.size
,但这仍然意味着收集遍历所有项目。如果任何物品符合收藏中的条件,是否有可能打破?
解决方案
如果您只想检查是否存在,则可以使用exists
运算符:
rule "Sample"
c : Customer()
exists Item( price > 10 ) from c.items
then
//...
end
在这种情况下,您甚至不需要使用collect
. 关键字将from
“循环”集合中的所有项目。
您可以查看Drools 手册以获取有关此条件元素的更多信息。
希望能帮助到你,
推荐阅读
- java - Collectors.toMap 在对象的不同属性上编写合并函数,而不是不用作值的属性
- node.js - 如果数据库中不存在数组字段值,如何推送数组字段值?
- angular - component.ts 文件中的错误限制了角度渲染
- angular - Angular 无法分配给“名称”,因为它是常量或只读属性
- css - 悬停时子 div 大于父 div
- spring - 在触发石英作业时出现异常
- r - 如何按顺序测量比例?
- html - 使用 python 将文本翻译成 html 文本
- sql - SQL 错误 ORA-00979 'not a group by expression' 但我无法弄清楚我的 group-by 语句有什么问题
- php - 如何将循环中的长无序列表分成两个相邻的容器