java - 在 Drools 中,如何检查列表是否不包含具有特定值的对象?

标签 java drools

我正在制定一条规则,查看给定对象的列表并检查其中一个字符串字段是否不包含特定值。如果列表中的任何对象包含所述值,那么我希望规则失败。

    when
        $vr: RequestDTO($activeObjects: activeObjects);
        eval(!$activeObjects contains ObjectDTO(this.name == "TEST NAME")); 
    then
        displayModalAction.setMessage("Message to Show");
    end

有没有办法在规则的 when 语句中执行此类操作?

最佳答案

您似乎正在寻找不具有名称为“TEST NAME”的 ObjectDTO 的 RequestDTO。如果这是正确的,请尝试以下操作:

when
    RequestDTO($activeObjects: activeObjects)
    not exists(ObjectDTO(name == "TEST NAME") from $activeObjects)
then
    ...

关于java - 在 Drools 中,如何检查列表是否不包含具有特定值的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51250219/

相关文章:

java - 大数据用什么数据结构

java - 为 isSorted() 方法创建 JUnit 测试用例的最佳方法是什么?

java - Java中的对象克隆() : why does this assertion fail?

java - 在 JUnit 中检查异常的最佳实践是什么?

java - Drools 中的正则表达式

java - 流口水:不止一条规则被触发,我想打印结论(然后是部分),这可能吗?如果不是你有什么建议?

java - 使用数据库填充对象数组

java - 来自 KieSession.startProcess 的 UnsupportedOperationException

drools - 如何使用动态变化的规则通过kafka流进行欺诈检测?

java - Newbee Drools 链表过滤