将SQL语句转换为Drools规则

将SQL语句转换为Drools规则,drools,Drools,我必须将一些存储过程移植到Drools中。由于存储过程遵循命令式编程模型,我发现将它们转换为Drools规则很困难。例如,我可以有一系列这样的案例陈述: case when <condition 1> then <action 1> when <condition 2> then <action 2> when <condition 3> then <action 3> end 案例 什么时候 什么

我必须将一些存储过程移植到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中,我只编写规则,没有指定顺序。如何将上述SQL隐含的顺序转换为Drools规则?我是否必须为上述SQL中的每个条件创建一个JPBM流程和一个规则任务?

在手册中查找
salience
激活组

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

激活组
属性使您能够强制特定组中只有一个规则被激活


把这些结合起来,你就得到了一个近似于case/switch语句的东西。

谢谢Steve。我将结合使用激活组和显著性。如您所知,如果激活组中触发了其中一条规则,则其他规则将被忽略。这正是我想从存储过程中模仿的。