我是Drools6.4.0.FINAL的新手,想要用它来迭代项目列表并处理我的业务逻辑
我的业务数据返回列表,我想将其插入KieSession
List<MyObject> list = service.queryList(Map<String,Object> param);
kSession.insert(list);
kSession.fireAllRules();
我的drl文件是这样的:
import java.util.List;
import xxx.xxx.MyObject;
rule "rule 1"
salience 1
activation-group "ctoc_order_rule"
when
$mo:MyObject(orgunitid_lev1 == 58094);
then
$mo.setBusiness_type_id(201);
$mo.setBusiness_type_name("business201");
update($mo);
end
但是这不会触发我的规则,我怎样才能解雇一个列表?感谢
答案 0 :(得分:0)
如果您想匹配java.util.List
,请插入一个列表并编写一个模式List(...)
。
如果要匹配xxx.xxx.MyObject
,请插入MyObject并编写模式MyObject(...)
。
如果您插入一个列表并且具有模式MyObject(...)
,则它无法匹配。可以匹配List并提取元素(使用from
),但匹配(通用)容器类在某种程度上是反模式。如果你有几种包含各种对象的List怎么办?