我有一个来自数据库表的流,其中包含一些规则(公式),我想将其映射到具有与Name列值相对应的数据的流。像这样说(规则只是虚拟的例子,不是问题的一部分):
Data:
---------------
Name | Sales
---------------
Food | 1000
Alkohol | 1000
Gas | 1000
Rules:
---------------
Name | Rule
---------------
Food | [if Sales > 100 then 0.5 else 0.7]
Alkohol | [if Sales > 25 then 1 else 2]
Gas | [if Sales > 500 then 0.7 else 0.5]
是否存在可能的流程,允许使用“名称”列查找规则,然后将匹配的规则应用于行?
目前,我有一个用户定义的Java类,它为数据的每一行遍历规则数组,并应用匹配的规则作为公式:
Formula formula = new Formula(rules[i]);
context.setRowData(row);
formula.initialize(context);
...但是效率不是很高。有更好的方法吗?
您可以尝试使用Modified Javascript步骤并使用eval(Rule)吗?