Как лучше всего разместить графы объектов при определении правил Drools?
Скажем, у меня есть следующий граф объектов Entity с отношением «многие ко многим»:
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 оценивал результат?