drools:如何分配给局部变量

时间:2011-10-13 11:36:56

标签: java drools

我被Drools 5困住了,需要一些帮助。 我想做的是使用传入的DAO并将其中的值赋给局部变量,如下所示......

rule "test rule 1"
when
    $carDao : ICarDAO( )
    $x : $carDao.getMap()
    eval (
       $x.contains("a") && $x.contains("b")
    )
then
// do stuff
end

Drools 5不允许分配局部变量。 我想分配一个局部变量,这样我就不必对DAO进行两次相同的调用。

那么有人能指出我正确的方向吗?

谢谢! 杰夫波特

2 个答案:

答案 0 :(得分:6)

rule "test rule 1"
when
    $carDao : ICarDAO( )
    $x: java.util.Map( ) from  $carDao.getMap()
    eval (
       $x.contains("a") && $x.contains("b")
    )
then
// do stuff
end

ta..dar!

答案 1 :(得分:4)

rule "test rule 1"
when
    $carDao : ICarDAO( $x : map )
    eval (
       $x.contains("a") && $x.contains("b")
    )
then
    // do stuff
end

或自5.2:

rule "test rule 1"
when
    $carDao : ICarDAO( $x : map, map.contains("a"), map.contains("b") )
then
    // do stuff
end