如何在地图中的Drools规则之间共享数据?

时间:2011-12-02 09:07:23

标签: drools business-rules

我有一条规则接受Map()作为事实,然后为此地图设置了许多元素。我希望能够在执行其他规则时在其他地方使用此地图。我读到Drools中的全局变量,但似乎它们不应该用于此目的。现在我将此映射保留为Java类中的私有属性,以便它可以将所有数据保留在Web应用程序上下文中,但这会增加我的内存占用。我知道这可能听起来很奇怪,但在Drools规则中对Java静态字段有什么类比吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

你能解释一下你的规则试图实现的目标吗?大多数时候,您应该重新制定规则以满足您的需求。过滤Map()的规则要求在知识会话中插入java.util.Map实例。如果将地图添加为全局,则规则将无法直接过滤Map()。我通常建议使用更多结构化的事实/对象来编写规则而不是通用结构。 请记住,如果将java.util.Map实例插入到会话中,那么该Map将可用于过滤Map()对象类型的所有规则。

希望它有所帮助,如果您能提供更多信息,我们将能够提供进一步的帮助。

干杯