我正在尝试在Drools Planner项目中找到BucketTotal
最小total
的对象。我从示例代码中改编了这个。
rule "insertMinimumBucketTotal"
when
$b : BucketTotal($total : total)
not BucketTotal(total > $total) // CONFUSED HERE
then
insertLogical(new MinimumBucketTotal($total));
end
就我的推理而言,它意味着“找到BucketTotal
对象$b
,这样就不存在另一个BucketTotal
大于total
的对象 total
$b
。
原来,这意味着相反(我纠正了它)。
请解释Drools如何通过该声明查找$b
。
答案 0 :(得分:3)
确实你的事情令人困惑。 “不”意味着“不存在”。因此,如果您想找到最低总数,您可以这样做:
rule "minimum"
when
BucketTotal( $min : total )
not BucketTotal( total < $min )
then
// do something with $min
end
以上通常是更高效的方式,但如果您愿意,也可以使用累积:
rule "minimum"
when
accumulate( BucketTotal( $total : total ),
$min : min( $total ) )
then
// do something with $min
end