我要遵循以下条件:
- 从CSV中获取数据
- 如果从CSV获取的数据不为空,则将其存储在map
- 然后,将上述数据插入数据库。注:这是我试图提出的一个非常简单的例子。
我尝试使用显著性,但问题是,我的第一个规则的输出将被视为第二个规则条件的输入。据我所知,实际情况是,首先执行同一DRL文件中提到的所有规则的条件部分。因此,对于第二条规则,在条件中,变量为null。
的例子:
rule "1st rule"
salience 50
when
$bean : Bean(a == 1)
then
$bean.setB(10);
end
rule "2nd rule"
salience 40
when
$bean : Bean(b == 10)
then
System.out.println("2nd rule success");
end
上面我想指出的是,只有当第一条规则执行时,第二条规则才会执行。但是,据我所知,规则的"IF"部分在"THEN"部分之前执行,因此,第二条规则失败。
如果我理解正确的话,示例中的第二条规则没有执行。这是因为你没有让引擎知道有些东西已经改变了。请使用update
或modify
。
// update
when
$bean : Bean(a == 1)
then
$bean.setB(10);
update($bean);
end
// or with modify
when
$bean : Bean(a == 1)
then
modify($bean) {
setB(10)
};
end
更多信息见文档