Java 如何从drools会话中检索事实?
假设我有一个类,如下所示:Java 如何从drools会话中检索事实?,java,drools,Java,Drools,假设我有一个类,如下所示: public class A { private int id1; private int id2; HashMap<String, String> attrMap; } StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession(); session.insert(a1); session.insert(a2); s
public class A {
private int id1;
private int id2;
HashMap<String, String> attrMap;
}
StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
session.insert(a1);
session.insert(a2);
session.insert(a3);
session.insert(a4);
公共A类{
私人int id1;
私有int id2;
HashMap属性映射;
}
StatefulKnowledgeSession=knowledgeBase.newStatefulKnowledgeSession();
会议.插入(a1);
会议.插入(a2);
插入(a3);
插入(a4);
现在,我如何从会话中检索具有id1=2
我知道我可以使用
getFactHandle(Object)
检索事实,但这里我想使用一个成员值检索事实
我如何才能做到这一点?如果您想从您的会话中获取这些事实,那么您可能需要使用查询。 有关更多信息,请查看我的回答:
即使我在另一篇文章中的答案是关于提取特定类的事实,它也可以很容易地修改以完成您所寻找的任务。我在drl文件
中给出了这个查询“findItemsForGw”(int-id,String-Name)account:account(Name.equals(Name),roll==id)end
。如何向查询传递参数QueryResults res=session.getQueryResults(findItemsForGw,?)
我可以使用参数调用查询。但是和条件不适用于查询。