我是Drools的新手,如果这是基本知识,我深表歉意。但是,如何在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
,但这仍然意味着collection会遍历所有项目。如果有任何物品符合收集中的条件,是否有可能损坏?
答案 0 :(得分:2)
如果只想检查是否存在,则可以使用exists
运算符:
rule "Sample"
c : Customer()
exists Item( price > 10 ) from c.items
then
//...
end
在这种情况下,您甚至不需要使用collect
。 from
关键字将“遍历”集合中的所有项目。
您可以检查Drools' Manual以获得有关此条件元素的更多信息。
希望有帮助,