2011-10-13 118 views
1

我被困在Drools 5中,需要一點幫助。 我想要做的就是使用DAO中通過,並從一個值賦給一個局部變量,像這樣...drools:如何分配到本地變量

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

Drools的5不允許局部變量的賦值雖然。 我想分配給一個局部變量,這樣我就不必對該DAO進行兩次相同的調用。

那麼有人可以指出我正確的方向嗎?

謝謝! Jeff Porter

回答

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 
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!