drools如何迭代列表

时间:2016-06-14 03:13:34

标签: list drools

我是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

但是这不会触发我的规则,我怎样才能解雇一个列表?感谢

1 个答案:

答案 0 :(得分:0)

如果您想匹配java.util.List,请插入一个列表并编写一个模式List(...)

如果要匹配xxx.xxx.MyObject,请插入MyObject并编写模式MyObject(...)

如果您插入一个列表并且具有模式MyObject(...),则它无法匹配。可以匹配List并提取元素(使用from),但匹配(通用)容器类在某种程度上是反模式。如果你有几种包含各种对象的List怎么办?