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,?)
我可以使用参数调用查询。但是和条件不适用于查询。