2012-02-09 10 views
0

totalのDrools Plannerプロジェクトで、BucketTotalというオブジェクトが最も小さいものが見つかりました。これをサンプルコードから修正しました。'not'キーワードの概念的な意味。オブジェクト間の評価

rule "insertMinimumBucketTotal" 
when 
    $b : BucketTotal($total : total) 
    not BucketTotal(total > $total) // CONFUSED HERE 
then 
    insertLogical(new MinimumBucketTotal($total)); 
end 
限り、私の推論を行ったとして、それは「その total total $bのより 大きい別のBucketTotalオブジェクトが存在doesntのように、BucketTotalオブジェクト$bを見つけること」を意味し

これは逆の意味です(と私はそれを修正しました)。


Droolsがこの文の理由で$bを見つける方法を説明してください。

答えて

2

実際、あなたは混乱することがあります。 「ない」は「存在しない」を意味する。それをやってのよりパフォーマンスの方法は、通常、上記

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