当前位置: 代码迷 >> JBoss >> drools 5里面怎么实现动态fact
  详细解决方案

drools 5里面怎么实现动态fact

热度:3993   发布时间:2013-02-26 00:00:00.0
drools 5里面如何实现动态fact
最近在研究drools 5,它的文档里面有写可以通过动态fact的方式实现让规则引擎自动获得fact的变化

// By setting dynamic to TRUE, Drools will use JavaBean
// PropertyChangeListeners so you don't have to call modify or update().
final boolean dynamic = true;

session.insert( fact, dynamic );

但是实际写代码的时候发现,目前提供的insert函数根本没有第二个boolean的参数,而只有一个Object的参数,网上找了一下,大部分都是这样写的,版本都是drools 4。在drools 5里面将这个特性取消了吗?在drools 5里面要如何实现动态fact呢?

请熟悉drools的朋友帮忙解答,谢谢!

------解决方案--------------------------------------------------------
只有在 StatefulSession 里面才有这个方法。而 StatefulKnowledgeSession里面没有。

for (Iterator workingMemories = 
statefulKnowledgeSession.getWorkingMemoryEntryPoints().iterator();
workingMemories.hasNext();) {

WorkingMemoryEntryPoint entryPoint = 
(WorkingMemoryEntryPoint) workingMemories.next();

System.out.println(entryPoint.getEntryPointId());

entryPoint.insert(message, true); // 这里面。

}