Соответствующий объект для списка участников в Drools
В настоящее время у меня есть ряд объектов класса A и объект, который является списком объектов класса B в рабочей памяти Drools. Оба класса имеют атрибут ID.
Мне нужно запустить правило, чтобы проверить, есть ли в памяти объект класса A, который совпадает с идентификатором из списка класса B. (По сути, поиск каждого элемента списка, чтобы проверить, соответствует ли его идентификатор объекту класса А)
Чтобы прояснить ситуацию, у меня в памяти есть нечто подобное:
class A{
ID : String
}
List[B] where:
Class B{
ID: String
}
Я пытался структурировать запрос правил вокруг этого безрезультатно. Идеи? (Все еще относительно новый для Drools)
1 ответ
Возможно, вот так:
when
$list: List()
B($id: ID) from $list
A(ID == $id)
then
Использование контейнера как факта обычно считается (по крайней мере, мной) антипаттерном. Вещи проще, если Б - факты.
A($id: ID)
B(ID == $id)
Вы все еще можете вставить Список, если считаете, что это когда-нибудь будет полезно.