Drools中OR条件无法获取目标数据的技术咨询
Drools OR条件匹配异常问题
使用Drools时遇到OR条件无法获取所需数据的问题,经测试以下两条规则执行结果完全一致:
rule "151" when $master:BusinessMaster() $map:HashMap() from $master.indexMap $mapads_mst_bas_info:HashMap() from $map.get("ads_mst_bas_info") $mapads_mst_order_mutl_stat4:HashMap() from $map.get("ads_mst_order_mutl_stat4") $resultMap:HashMap((( $mapads_mst_bas_info.get("mst_integral") >= 500 && <= 5000 ) || ( $mapads_mst_order_mutl_stat4.get("current_mon_bad_rate_num") >= 1 && <= 2 )) && ($mapads_mst_bas_info.get("remain_amount")>=5000)) from $master.indexMap then $master.getMasterLabel().add("151"); insert($master); end
该规则与以下规则效果相同:
rule "151" when $master:BusinessMaster() $map:HashMap() from $master.indexMap $mapads_mst_bas_info:HashMap() from $map.get("ads_mst_bas_info") $mapads_mst_order_mutl_stat4:HashMap() from $map.get("ads_mst_order_mutl_stat4") $resultMap:HashMap((( $mapads_mst_bas_info.get("mst_integral") >= 500 && <= 5000 ) || $mapads_mst_order_mutl_stat4.get("current_mon_bad_rate_num") >= 1 && $mapads_mst_order_mutl_stat4.get("current_mon_bad_rate_num") <= 2 ) && ($mapads_mst_bas_info.get("remain_amount")>=5000)) from $master.indexMap then $master.getMasterLabel().add("151"); insert($master); end
两条规则执行结果一致
内容的提问来源于stack exchange,提问作者yiyun
相关产品推荐
相关产品推荐

