匹配对象到Drools中的列表成员

时间:2015-01-30 11:26:48

标签: drools rule-engine rule

我目前有一系列A类对象和一个对象,它是Drools工作记忆中B类对象的列表。这两个类都有一个ID属性。

我需要运行一个规则来检查内存中是否有类A的对象与类B列表中的ID匹配。(实质上,搜索列表中的每个元素以检查其ID是否存在匹配A类对象

为了让事情更清楚,我在记忆中得到了类似的东西:

class A{
    ID : String
}

List[B]  where:

Class B{
    ID: String
}

我一直试图围绕此构建规则查询无济于事。想法? (对Drools来说还是比较新的)

1 个答案:

答案 0 :(得分:3)

也许是这样:

when
  $list: List()
  B($id: ID) from $list
  A(ID == $id)
then

使用容器作为事实通常被认为(至少是我)作为反模式。如果B是事实,情况会更容易。

A($id: ID)
B(ID == $id)

如果您认为这将有用,您仍然可以插入列表。