我想使用Drools规则进行一些验证:
rule "Test"
when
MyRequest(paymentTerm == PaymentTerm.MONTH);
then
Validation val = new Validation();
val.setIsValid(true);
val.setDescription("It's a monthly term!");
insert(val);
end
我第一次创建了一个Statefull-KieSession,它第一次按预期工作。然而,当我重新运行该规则时,验证事实仍在内存中,这不是我想要的。因此,我尝试将示例调整为无状态KieSession。
使用KieSession K会话:
kSession.insert(req);
kSession.fireAllRules();
Collection<?> validations = kSession.getObjects(new ClassObjectFilter(Validation.class));
使用无状态KieSession会话:
List<Command> cmds = new ArrayList<>();
cmds.add(CommandFactory.newInsert(req, "request"));
cmds.add(CommandFactory.newGetObjects(new ClassObjectFilter(Validation.class), "validations"));
ExecutionResults results = kSession.execute(CommandFactory.newBatchExecution(cmds));
Collection<?> validations = (Collection<?>) results.getValue("validations");
statefull会话在validations集合中返回一个Validation对象,无状态KieSession返回一个空集合。为什么?
KIE/Drools:6.5.0。最终的
JavaEE 7,在WildFly 10.1.0上使用CDI
找到了。我需要显式指定运行fireAllRules命令时的顺序。这项工作:
List<Command> cmds = new ArrayList<>();
cmds.add(CommandFactory.newInsert(req, "request"));
cmds.add(CommandFactory.newFireAllRules());
cmds.add(CommandFactory.newGetObjects(new ClassObjectFilter(Validation.class), "validations"));
ExecutionResults results = kSession.execute(CommandFactory.newBatchExecution(cmds));
Collection<?> validations = (Collection<?>) results.getValue("validations");
我正在从WLS10g和JavaEE6升级到WLS12c和JavaEE7。 我注意到的工作方式不同。在WLS10中,任何已经存储在某个键下的对象都将始终被替换。 在WLS12中,如果新建对象,则不会替换该对象。等于(旧对象)。 这对我们来说是个问题,因为应用程序有如下对象: ValueObject通过跨多个网页的工作流进行修改。中间值存储在中,并在工作流结束时将修改后的值写入数据库。 在servle
我有一个查询和一张表。查询“EmployeeTraining”包括员工姓名、参加的培训课程、参加的日期和有效期。我希望LeftJoin返回的是所有可用的培训课程,以及每个员工缺少的课程,因此在essense中,任何空值都是空的。 “应用培训”共有5项记录。一些员工只参加了4/5的课程,在“员工培训”记录中只有4项记录。left join不应该在“DateTake”和“Expiration”中使用空
我将数据保存到会话中,但是我尝试将其读回,结果为空。Spring MVC是我的后端,Angular 4是前端。 爪哇: 角: 你知道我错过了什么吗?也许是CORS的事?
我正在iOS上构建一个小应用程序,使用Spotify SDK向其Web Api发出请求。问题是,我正在使用函数每当我想提出请求时,都可以续订令牌。但是对于该函数,文档中说“如果没有指定令牌刷新服务,回调将返回nil作为会话”。这就是发生在我身上的事。我总是得到一个零“续费期”(https://developer.spotify.com/ios-sdk-docs/Documents/Classes/
问题内容: 我试图比较两个相同类型的对象(在dosHave方法中),但是我从未返回过“ true”。这是我的代码: “ Osoba”类如下所示: 来自主代码: 无论我要使用什么输入,这部分都永远不会发生。“ kartoteka”是我当然进口的包裹。每个类都在单独的程序包中,但是使用它们没有问题。我已经尝试了一段时间,但没有任何帮助,似乎 从来都不是真的,但我不知道为什么。没有Boolean.TRU
我有一个回调函数,检查我的登录详细信息是否正确-如果他们是错误的,它返回一个错误(这是工作正常)。如果细节是正确的,它应该设置会话