1
我在Drools的以下情形:插入嵌套对象为KieSession
package test;
public class A {
public ArrayList<B> b = new ArrayList<B>();
}
public class B {
public ArrayList<C> c = new ArrayList<C>();
public ArrayList<D> d = new ArrayList<D>();
}
public class C {
some attributes
}
public class D {
some attributes
}
当我要插入这些事实到KieSession,以使它们可直接进入工作记忆,我有通过遍布对象上进行迭代,即:
for(int i=0; i< a.getB().size(); i++){
ksession.insert(a.getB().get(i));
for(int j=0; j< a.getB().get(i).getC().size; j++){
ksession.insert(a.getB().get(i).getC().get(j));
etc...
}
}
在我的理解,你必须做,如果你不想通过其父级访问到一个对象,即:
rule "Do something with B"
when
B()
then
....
end
而不是
rule "Do something with B"
when
A.b()
then
....
end
我的问题是:有没有什么办法来加载比的嵌套荷载回路更快的方式,所有的嵌套的事实吗?
我希望我的问题有道理。
感谢您的反馈。