私はに従うオブジェクトのリストを構築する必要がある状況にあります。これは2つの条件の論理和( 'または')です。です。これらの基準自体は私にとって原子質であり、私はそれらを変更することはできません。Drools:リストを構築するために基準で 'or'を使用する
複数のパターンを許可していないため、from collect
は使用できません。 accumulate
はそうしますが、条件部分に矛盾があった場合はそれを許しません。例えば
、私が行うことができます。
$myList: ArrayList() from accumulate (
(and
$book: Book()
<Constraint A>
<Constraint B>
);
collectList($book)
)
これらの制約は、何らかの方法で$帳および/またはそのプロパティに適用されることを他のパターンやeval文することができます。しかし私は、はが何をしたいが、を行うことができないもの:このついて行くには
$myList: ArrayList() from accumulate (
(and
$book: Book()
(
<Constraint A>
or
<Constraint B>
)
);
collectList($book)
)
もう一つの方法は、例えば、accumulate
句の外に論理和をもたらすことです:については
$listA: ArrayList() from accumulate (
(and
$book: Book()
<Constraint A>
);
collectList($book)
)
$listB: ArrayList() from accumulate (
(and
$book: Book()
<Constraint A>
);
collectList($book)
)
$myList: <somehow concatenate lists listA and listB>
これは2つのリストを連結する必要があり、これまで可能であったことはわかりませんでした。私はちょっとこだわっている...
代わりにクエリを使用すると便利ですか? –
ルールでクエリを使用できますか? (私は見てきましたが、これに言及している文書の例は見つかりませんでした) - 編集:doh!あなたは私をもう一度見て、今私はそれを見つけました。それは私にとって以前の多くの終わりの道の一つに過ぎませんでした。私は今これを最初に試してみるでしょう。 – Devaro
はい、あなたが必要とするかもしれないkie apiを使用することもできます(そして、おそらく外からも)?見てみましょうhttps://docs.jboss.org/drools/release/6.4.0.Final/drools-docs/ html_single /#QuerySection –