【发布时间】:2020-06-04 18:58:20
【问题描述】:
我正在尝试构建一个 drools 规则,其中提供的事实具有用户提供的 int 值。 Fact 还有一个具有预期 int 值的对象列表。我需要检查用户提供的值是否小于单个对象期望值的总和。 这是我的示例事实类 -
public class Order {
private int orderId;
private List<OrderItem> orderItems;
private int usersIntegrationFee;
}
事实类中包含的OrderItem类是——
public class OrderItem {
private int orderItemId;
private Product prod;
}
Product 类是具有 productIntegrationFee 字段的类-
public class Product {
private String mktProdId;
private String prodName;
private int productIntegrationFee;
}
我想检查 Order.usersIntegrationFee 是否小于所有 Order.OrderItem.Product.productIntegrationFee 的总和。 有没有办法在流口水中做到这一点?任何帮助将不胜感激。
【问题讨论】:
-
作为一种解决方法,我在 Order 类中添加了一个 expectedIntegrationFee 字段和 getExpectedIntegrationFee() 方法。此方法遍历所有包含的 OrderItem 对象及其对应的 Product 对象,并返回单个集成费用的总和。在我的 drools 规则中,然后我只需对照 usersIntegrationFee 检查预期的集成费用值。但我仍然想知道我是否可以在不改变我的事实类的情况下在流口水规则中做到这一切。
-
无需解决方法。查看accumulate(在文档中向下滚动到“累积”;它在“收集”下方)
-
只需阅读文档。这应该非常适合我的用例。谢谢!!!为什么不将您的评论复制到答案部分,以便其他人更容易寻找类似问题的答案,在那里找到它。
-
我会看看我今天晚些时候是否有时间写一个答案。 :)
标签: list loops sum drools rules