在条件满足时比较Drools中的列表项属性

在条件满足时比较Drools中的列表项属性,drools,Drools,我已经在StatefulKnowledgeSession中插入了元素列表。现在在drools.drl文件中的When子句中,我需要比较列表中不同元素的一些属性值 例如,我有一个宠物列表[在会话中添加为kbSession.insert(list)],其中每个宠物都有一个name属性(pet1.name=“adi”,pet2.name=“flix”)。那么,在when子句中检查此项的最佳方法是什么呢 在我的test.drl文件中说 规则“宠物物品” 方言“java” 什么时候 然后 非常感谢您的任何

我已经在StatefulKnowledgeSession中插入了元素列表。现在在drools.drl文件中的When子句中,我需要比较列表中不同元素的一些属性值

例如,我有一个宠物列表[在会话中添加为kbSession.insert(list)],其中每个宠物都有一个name属性(pet1.name=“adi”,pet2.name=“flix”)。那么,在when子句中检查此项的最佳方法是什么呢

在我的test.drl文件中说

规则“宠物物品”

方言“java”

什么时候

然后

非常感谢您的任何建议

亲切问候,


Shekh

您正在尝试根据规则验证您所有的宠物物品(技术术语-事实)?然后您不需要将其作为列表插入。将所有宠物对象作为session.Insert(petObj)和fireAllRules逐个插入。规则引擎将根据规则检查所有对象,然后激活匹配对象的规则。

谢谢gammay的回复。嗯,我对规则有一些限制,比如“无循环”和“活动锁定”都是真的。所以我需要检查规则中的事实列表(列表将插入会话)项属性值。再次感谢您的回复。
 list.get(0).name != list.get(1).name
 do something!