我目前有一系列A类对象和一个对象,它是Drools工作记忆中B类对象的列表。这两个类都有一个ID属性。
我需要运行一个规则来检查内存中是否有类A的对象与类B列表中的ID匹配。(实质上,搜索列表中的每个元素以检查其ID是否存在匹配A类对象
为了让事情更清楚,我在记忆中得到了类似的东西:
class A{
ID : String
}
List[B] where:
Class B{
ID: String
}
我一直试图围绕此构建规则查询无济于事。想法? (对Drools来说还是比较新的)
答案 0 :(得分:3)
也许是这样:
when
$list: List()
B($id: ID) from $list
A(ID == $id)
then
使用容器作为事实通常被认为(至少是我)作为反模式。如果B是事实,情况会更容易。
A($id: ID)
B(ID == $id)
如果您认为这将有用,您仍然可以插入列表。