流口水:使用“规则”;“存在”;对于地图(Scala)

流口水:使用“规则”;“存在”;对于地图(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

我有一个类“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
      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用户列表。