Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
规则编译错误:只能迭代java.lang.Iterable的数组或实例_Java_Mongodb_Drools - Fatal编程技术网

规则编译错误:只能迭代java.lang.Iterable的数组或实例

规则编译错误:只能迭代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

我是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(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);
    // ...
}