Drools 上的 EqualsIgnoreCase
EqualsIgnoreCase on Drools
我正在尝试将我的 drl 从使用正则表达式重写为 equalsIgnoreCase,因为我认为它更快。我不确定它是否更快。但是,出于某种原因,drools 不喜欢它,我收到了未知错误。
最上面的有效,但使用 equalsIgnoreCase 的无效
rule "name"
salience 0
activation-group "flow"
dialect "mvel"
no-loop true
when
$vurderinger: Vurderinger(vurdering1909 != null &&
vurdering1909.verdi matches "(?i)^FOO$")
then
modify( $vurderinger ) { setVurdering1913(new DroolsType("SHOW")) }
end
rule "name"
salience 0
activation-group "flow"
dialect "mvel"
no-loop true
when
$vurderinger: Vurderinger(vurdering1909 != null &&
eval("FOO".equalsIgnoreCase(vurdering1909.verdi)))
then
modify( $vurderinger ) { setVurdering1913(new DroolsType("SHOW")) }
end
谁能找出错误?
在 eval 中,坚持 Java:引用绑定变量,使用 getter。
when
$vurderinger: Vurderinger($v: vurdering1909 != null &&
eval("FOO".equalsIgnoreCase($v.getVerdi())))
then
编辑不知道class的定义,错误和版本,我建议使用eval/Java,保险起见,不管Drools 版本是什么。对于 6.3.0,您可以省略 eval,它可以工作。
when
$vurderinger: Vurderinger(vurdering1909 != null &&
"FOO".equalsIgnoreCase(vurdering1909.verdi))
then
我已经给出了决定 table 的解决方案,即:
javaObject.getRisk().equalsIgnoreCase("$param")
流口水规则
rule "Rule To Check String Contains"
when
Pojo(name.contains("Loans"))
then
System.out.println(drools.getRule().getName());
end
rule "Rule To Check String Equals"
when
Pojo(name.equals("Personal Loans, Insuarnce"))
then
System.out.println(drools.getRule().getName());
end
rule "Rule To Check String EqualsIgnoreCase"
when
Pojo(name.equalsIgnoreCase("Personal loans, insuarnce"))
then
System.out.println(drools.getRule().getName());
end```
我正在尝试将我的 drl 从使用正则表达式重写为 equalsIgnoreCase,因为我认为它更快。我不确定它是否更快。但是,出于某种原因,drools 不喜欢它,我收到了未知错误。
最上面的有效,但使用 equalsIgnoreCase 的无效
rule "name"
salience 0
activation-group "flow"
dialect "mvel"
no-loop true
when
$vurderinger: Vurderinger(vurdering1909 != null &&
vurdering1909.verdi matches "(?i)^FOO$")
then
modify( $vurderinger ) { setVurdering1913(new DroolsType("SHOW")) }
end
rule "name"
salience 0
activation-group "flow"
dialect "mvel"
no-loop true
when
$vurderinger: Vurderinger(vurdering1909 != null &&
eval("FOO".equalsIgnoreCase(vurdering1909.verdi)))
then
modify( $vurderinger ) { setVurdering1913(new DroolsType("SHOW")) }
end
谁能找出错误?
在 eval 中,坚持 Java:引用绑定变量,使用 getter。
when
$vurderinger: Vurderinger($v: vurdering1909 != null &&
eval("FOO".equalsIgnoreCase($v.getVerdi())))
then
编辑不知道class的定义,错误和版本,我建议使用eval/Java,保险起见,不管Drools 版本是什么。对于 6.3.0,您可以省略 eval,它可以工作。
when
$vurderinger: Vurderinger(vurdering1909 != null &&
"FOO".equalsIgnoreCase(vurdering1909.verdi))
then
我已经给出了决定 table 的解决方案,即:
javaObject.getRisk().equalsIgnoreCase("$param")
流口水规则
rule "Rule To Check String Contains"
when
Pojo(name.contains("Loans"))
then
System.out.println(drools.getRule().getName());
end
rule "Rule To Check String Equals"
when
Pojo(name.equals("Personal Loans, Insuarnce"))
then
System.out.println(drools.getRule().getName());
end
rule "Rule To Check String EqualsIgnoreCase"
when
Pojo(name.equalsIgnoreCase("Personal loans, insuarnce"))
then
System.out.println(drools.getRule().getName());
end```