我的要求是我需要计算来自同一客户的订单请求,而无需在规则中硬编码 customerid。原因是如果我有 1000 个客户,那么我需要为此编写 1000 条规则。为避免这种情况,我需要通用方法来处理所有客户对象。
例如,customerA 和 customerB 有四个订单请求对象。我的规则应该能够计算出来自单个客户的请求数量,并且我还需要存储这些对象。
基本上我需要 sql's group by equivalent method in drools 。
请提供指点
我的要求是我需要计算来自同一客户的订单请求,而无需在规则中硬编码 customerid。原因是如果我有 1000 个客户,那么我需要为此编写 1000 条规则。为避免这种情况,我需要通用方法来处理所有客户对象。
例如,customerA 和 customerB 有四个订单请求对象。我的规则应该能够计算出来自单个客户的请求数量,并且我还需要存储这些对象。
基本上我需要 sql's group by equivalent method in drools 。
请提供指点
你有没有尝试过这样的事情?:
rule 'Count Order Requests'
when
$c: Customer()
$n: Number() from accumulate(
$o: OrderRequest(customer == $c),
count($o)
)
then
//use $n
end
即使对于没有任何 OrderRequest 的客户,此规则也会触发。如果这不是您想要的,那么您必须在 $n 的 intValue 上添加一个约束:
$n: Number(intValue > 0) from accumulate (....)
希望能帮助到你,