规则编译错误:只能迭代java.lang.Iterable的数组或实例
我是mongoDb的新手,我流口水。 我正在drools中编写一个规则,它迭代java列表。但当运行tomcat时,它给出了规则编译错误 正在从dao获取列表:-规则编译错误:只能迭代java.lang.Iterable的数组或实例,java,mongodb,drools,Java,Mongodb,Drools,我是mongoDb的新手,我流口水。 我正在drools中编写一个规则,它迭代java列表。但当运行tomcat时,它给出了规则编译错误 正在从dao获取列表:- List<XYZ> list = new ArrayList<XYZ>(); Query q = query(where("id").is(userId)); list = getMongoOperation().find(q, XYZ.class, "XYZ"); 型号类别:- @Document(col
List<XYZ> list = new ArrayList<XYZ>();
Query q = query(where("id").is(userId));
list = getMongoOperation().find(q, XYZ.class, "XYZ");
型号类别:-
@Document(collection="XYZ")
public class XYZ
{
}
我在运行tomcat时遇到异常。“规则编译错误:只能迭代java.lang.Iterable的数组或实例”
规则文件:-
导入java.util.List;导入java.util.Iterator;global com.demo.XYZ
名单
规则“1\u演示\u规则”
当prop:RULEDEMO(属性=“demo”)时
end由于DRL解析器中的限制,您将根本无法使用for语句的简短语法 鉴于此
global List<com.demo.XYZ> list;
全局列表;
使用不太好的
for( int i = 0; i < list.size(); i++ ){
XYZ xyzObj = list.get(i);
// ...
}
for(int i=0;i
绝对没有经验,但是collection=“XYZ”
听起来不对。。。。这不是流口水的规则。或者至少这不是规则的相关部分。您还没有显示什么是列表
。@Steve我已经添加了规则文件。请参阅更新的问题。根据这条规则,列表是XYZ的一个实例,这可以解释为什么您不能迭代它。全局列表,对吗?
global List<com.demo.XYZ> list;
for( int i = 0; i < list.size(); i++ ){
XYZ xyzObj = list.get(i);
// ...
}