【问题标题】:Converting SQL statements into Drools Rules将 SQL 语句转换为 Drools 规则
【发布时间】:2014-03-07 10:52:26
【问题描述】:

我必须将一些存储过程移植到 Drools 中。由于存储过程遵循命令式编程模型,我发现将它们转换为 Drools 规则很棘手。例如,我可以有一系列这样的案例陈述:

case
    when <condition 1> then <action 1>
    when <condition 2> then <action 2>
    when <condition 3> then <action 3>
end

因为上面的评估中隐含了一个顺序,即首先评估条件 1,然后是条件 2,然后是条件 3,我发现很难将其转换为 Drools。在 Drools 中,我只是编写没有指定顺序的规则。如何将上述 SQL 隐含的排序实现到 Drools 规则中?是不是一定要创建一个JPBM流程,对上面SQL中的每一个条件都有一个规则任务?

【问题讨论】:

    标签: drools


    【解决方案1】:

    在手册中查找salienceactivation-group

    salience 属性为您提供了一种定义规则优先级的机制。

    activation-group 属性使您能够强制在特定组中只激活一个规则。

    通过组合这些,您可以获得近似于 case/switch 语句的内容。

    【讨论】:

    • 谢谢史蒂夫。我将使用激活组和显着性的组合。如您所知,如果其中一个规则在该组中触发,则带有激活组,则其他规则将被忽略。这正是我想从存储过程中模仿的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2013-02-15
    • 2019-07-03
    • 1970-01-01
    • 2023-03-15
    • 2019-09-15
    • 1970-01-01
    相关资源
    最近更新 更多