到目前为止,我一直在使用 Stateful Sessions (KieSession),并设法使用带有一些 Java 包装器的 Scala 让我的项目按需要运行。我现在正试图切换到 StatelessKieSessions。根据我找到的文档,我设法运行以下命令将对象/集合插入到会话中,触发它们的规则并更新事实:
val cmd = CommandFactory.newInsert(myObject, "myObject")
val result = ksession.execute(cmd)
当我打印result
(属于 org.drools.core.common.DefaultFactHandle 类)时,它显示了所需事实的结构,按预期更新,前面是“事实 0:1:2050275256:1971742898:2:默认值:NON_TRAIT:”
文档说我应该能够编写类似的东西,result.getValue("myObject")
但是这个选项在 Scala 中似乎不可用。(https://docs.jboss.org/drools/release/6.0.0.Beta1/kie-api-javadoc/org/kie/api/runtime/StatelessKieSession.html)
我知道尚未完全提供 Scala-Drools 互操作性,但是有人知道从 StatelessKieSession 或包含它的 DefaultFactHandle 中提取更新事实的方法吗?