在我们的应用程序中,我们在逻辑上插入一个对象,例如PERSON
,作为规则1的RHS执行的一部分。稍后在规则执行过程中,另一个规则#2要更新PERSON
的状态,从而更改hashcode()
和equals()
。
例如RHS
modify ($person) {
setName($name)
};
此操作现在失败,但出现以下例外:IllegalStateException: Currently, we cannot modify something that has mixed stated and justified equal objects
。 (使用的Drools版本:7.16.0.Final)
不幸的是,我无法通过阅读文档来澄清问题。 https://docs.jboss.org/drools/release/7.18.0.Final/drools-docs/html_single/index.html#_truth_maintenance_with_logical_objects
实现感觉不对:我们没有说明第二个对象,而是尝试修改一个逻辑上插入的对象的状态。
这不可能了吗?它适用于Drools 4和5.3。
提前感谢您的检查!我已尽可能简化了这个问题,实现此逻辑的系统非常复杂。
亚历山大