Droolsルールを定義するとき、オブジェクトグラフに対応するための最良の方法は何ですか?
多対多の関係を持つ次のエンティティオブジェクトグラフがあるとします。
User <- Group -> Value
そして私は次の不自然なルールを持っています:
rule "hasPurpleValue"
$u : User()
$g : Group() from $u.groups
$v : Value(color == 'Purple') from $g.values
then
//...
end
次のように、ユーザーをksessionに挿入できます。
//build user...
User user = new User();
Group group = new Group();
Value value = new Value("Purple");
group.setValue(value);
user.addGroup(group);
ksession.insert(user);
次に、それらを更新します。
ksession.update(ksession.getFactHandle(user), user);
しかし、Valueオブジェクトを直接に変更する"Orange"
と、ユーザーをルートとして挿入されたため、ValueにはFactHandleがありません。ルールを定義し、エンティティを挿入して、エンティティを個別に変更でき、Droolsが結果を評価するようにするためのより良い方法はありますか?