4

drools を使用してオブジェクトを検証しています。このオブジェクトには、このオブジェクト (主従関係) に関連する子オブジェクトを返す getChildrenList() メソッドもあります。

オブジェクトに対していくつかの検証を行い、次に子オブジェクトも検証したいので、次のルールを使用してすべての子オブジェクトを作業メモリに挿入します。

 rule "Insert Children"
     when
             $parent : Parent ( eval(childrenList != empty) )
                     $ch : Child() from $p.childrenList
     then
             insert($ch);
     end

子が既に挿入されている場合、このルールが起動されないようにするにはどうすればよいですか。つまり、いくつかの事実を変更したため、ルールが再起動されます。どうすればそれを防ぐことができますか?

ありがとう

4

1 に答える 1

2

この行をwhen条件に追加してみることができますが、これは「正しい」イディオムではないと思われます。

not( Child(this == $ch) )
于 2009-08-05T13:18:16.203 に答える