流口水:使用“规则”;“存在”;对于地图(Scala)
我有一个类“Records”,它有一个Map[String,Double](Scala)属性“payOrders”,我想知道Map是否包含大于50的值。我写的规则是这样的:流口水:使用“规则”;“存在”;对于地图(Scala),scala,drools,Scala,Drools,我有一个类“Records”,它有一个Map[String,Double](Scala)属性“payOrders”,我想知道Map是否包含大于50的值。我写的规则是这样的: rule "user1" dialect "mvel" no-loop when $user:Records($pay:payOrders.values) exists(Number(doubleValue > 50) from $pay) then Syst
rule "user1"
dialect "mvel"
no-loop
when
$user:Records($pay:payOrders.values)
exists(Number(doubleValue > 50) from $pay)
then
System.out.println("user1")
end
问题是没有错误,但规则不起作用!没有产出。
然后,我试着打印$pay
。输出是$pay:MapLike(300.0)
。首先,我认为drools无法分析这种类型,所以我将$user:Records($pay:payOrders.values)
修改为$user:Records($pay:payOrders.values.toList)
。但它仍然没有打印任何东西。似乎一旦我添加了exists行,规则就不起作用了
有人能帮我吗?谢谢 对我有用,使用5.5.0。-如果您省略了“exists(…)”,那么您可以在then部分打印$pay吗?在我更改版本后,该规则仍然不起作用。无论如何谢谢你!那么可能是Scala/Java/Drools不兼容。尝试Drools用户列表。