我的要求是我需要计算来自同一客户的订单请求,而无需在规则中对customerid进行硬编码。 原因是如果我有1000个客户,那么我需要写1000条规则。 为了避免这种情况,我需要通用的方法来处理所有客户对象。
例如,customerA和customerB有四个订单resquest对象。我的规则应该能够计算出来自indivdual客户的请求数量,并且我还需要存储这些对象。
基本上我需要在drools中通过等价方法获得sql的组。
请提供指示
答案 0 :(得分:0)
你尝试过这样的事吗?:
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 (....)
希望它有所帮助,