【问题标题】:Drools Decision Table with java variables带有 java 变量的 Drools 决策表
【发布时间】:2022-10-16 05:27:20
【问题描述】:

如何在 drools 决策表中只使用字段而不是对象?

例如,我在控制器中有这个方法

@PostMapping("/order")
public Order checkDiscount(@RequestBody Order order) {
    session.insert(order);
    session.fireAllRules();
    return order;
}

我的决策表看起来像这样

RuleSet rules
import com.example.drools.model.Order
RuleTable OrderDiscount
Name CONDITION ACTION
order : Order
order.getCard()==($param) order.setDiscount($param)
"MasterCard" 5
"Visa" 15

但我需要获取字段而不是对象:

@PostMapping("/order")
public Order checkDiscount(@RequestParam String card) {
    Order order = new Order();
    session.insert(card);
    session.insert(order);
    session.fireAllRules();
    return order;
}

那么我的决策表应该是什么样子?

【问题讨论】:

    标签: java spring-boot drools


    【解决方案1】:

    不确定“需要获取字段”是什么意思,但您的代码显示您正在将 String card 插入工作内存。因此,只需更新您的代码即可使用它。

    例如。此外:

    order: Order
    

    还要声明您的字符串类型输入:

    card: String
    

    并像往常一样进行比较,替换 order.getCard()... 单元格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多