我是mongoDb和drools的新手。 我在drools中编写一个规则,它正在迭代一个java列表。但是当运行tomcat时,它会给出规则编译错误。
从dao获取清单: -
List<XYZ> list = new ArrayList<XYZ>();
Query q = query(where("id").is(userId));
list = getMongoOperation().find(q, XYZ.class, "XYZ");
在drools引擎中使用list规则: -
for(XYZ xyzObj : list)
{
}
模特课: -
@Document(collection="XYZ")
public class XYZ
{
}
运行tomcat时出现异常。 “规则编译错误:只能迭代数组或java.lang.Iterable的实例”
规则文件: -
import java.util.List; import java.util.Iterator;全球com.demo.XYZ 列表
规则'1_Demo_Rule'
当道具:RULEDEMO(属性==“演示”)然后
for(XYZ xyzObj : list) { }
端
答案 0 :(得分:0)
由于DRL解析器的限制,您将无法使用for-statement的短语法。
鉴于此
global List<com.demo.XYZ> list;
使用不那么好的
for( int i = 0; i < list.size(); i++ ){
XYZ xyzObj = list.get(i);
// ...
}