在迭代子条件时,有没有办法打破drools中的循环
我有一个客户的事实,它有许多股票的事实 我希望在ist匹配后打破项目循环在迭代子条件时,有没有办法打破drools中的循环,drools,Drools,我有一个客户的事实,它有许多股票的事实 我希望在ist匹配后打破项目循环 List<Stocks> stocks = new ArrayList<Stocks>(); stocks.add(new Stocks("Apple", 10, 100)); stocks.add(new Stocks("Google", 35, 28)); Customer customer = new Customer(); customer.setStocks(st
List<Stocks> stocks = new ArrayList<Stocks>();
stocks.add(new Stocks("Apple", 10, 100));
stocks.add(new Stocks("Google", 35, 28));
Customer customer = new Customer();
customer.setStocks(stocks);
customer.setCustId("ABC123");
List<Stocks> stocks2 = new ArrayList<Stocks>();
stocks2.add(new Stocks("Apple", 10, 100));
stocks2.add(new Stocks("Google", 35, 28));
stocks2.add(new Stocks("salesforce", 160, 40));
Customer customer2 = new Customer();
customer2.setStocks(stocks2);
customer2.setCustId("ABC456");
ksession.insert(customer);
ksession.insert(customer2);
ksession.fireAllRules();
结果/产出:
Customer : ABC456
Customer : ABC123
请建议
谢谢你的帮助
我正在考虑创建一个局部变量count,并通过增加值或在第一个实例中使用中断逻辑来修改子事实库存。我在您的代码中看不到任何循环,因此我不知道如何中断一个循环…感谢您的回复,我想从collect if stock中断。item=“Apple”但是收集不是一个循环……你应该用“客户”和“库存”来描述你的问题,而不是用循环变量来描述。你的规则是:“对于每个有2个或更多库存项目且数量为2个或更多的客户:打印客户id。”请用这种方式描述你想要什么。
Customer : ABC456
Customer : ABC123