Java Drools方言隐式连接和显式连接之间的差异(和)

Java Drools方言隐式连接和显式连接之间的差异(和),java,drools,implicit,Java,Drools,Implicit,在drools方言中,连词是隐含的。例如: rule "new drool" when Fact(id=="fact1") Fact(id=="fact2") then end 以上要求有两个事实对象。一个必须具有“fact1”id,另一个必须具有“fact2”id 但是,AND运算符确实存在。你可以写同样的口水,如下所示: rule "new drool" when Fact(id=="fact1") AND Fact(id=="fact2") then end 我的印象是,这两种表达在逻

在drools方言中,连词是隐含的。例如:

rule "new drool"
when
Fact(id=="fact1")
Fact(id=="fact2")
then
end
以上要求有两个事实对象。一个必须具有“fact1”id,另一个必须具有“fact2”id

但是,AND运算符确实存在。你可以写同样的口水,如下所示:

rule "new drool"
when
Fact(id=="fact1") AND
Fact(id=="fact2")
then
end

我的印象是,这两种表达在逻辑上或实践上完全没有区别。然而,我有一个用户告诉我,当他使用显式连接和隐式连接时,他正在体验不同的行为。我对此表示怀疑,但我还没有找到任何文件来支持我的立场。有人知道drools中的隐式与显式连接是否可以看到不同的行为吗?

并且在两个条件元素之间是隐式的,因此如果用户体验到不同的行为,则应该存在错误。如果您能够在测试用例中重现不同的行为,请为其打开jira

他所经历的行为差异是什么?他有一个带有两个对象的when子句,很像上面的例子。显然,使用隐式连接时,规则不会触发。使用显式连词,它可以。我无法证实这种行为,因为我自己没有经历过。我不太想在这里调试它,而是想找到一个答案,来说明隐式和显式以及流口水之间是否有区别。我看不出以上两个事实有任何区别。我只是运行了一个测试用例来再次确认上面的内容,只有一个小问题,应该是小问题。谢谢saladboy。我会尝试复制他的行为,如果它存在,我会开罚单。