Drools中多嵌套对象的处理

原来的文章就曾经提到过,在drools中,域约束好像只能适用于对象的简单类型域,复杂对象类型的是不能用域限定方式来做的。如:
rule "WEEKDAY_BALANCE"  
    salience 0  
    when  
        $customer : Customer( $card : card ) 
        $scard : $card( discount == 0.9 )
    then   
        System.out.println("...");
end  

其中,card域就是一个“复杂”对象。那么上面的rule就是不合法的。
这个问题困扰多时,请教过dada,得知可以用eval来解决(或者,在3.1M中可以用from解决)。可处理了一些之后感觉还是有问题,尤其是一个对象中有多个“复杂”对象的时候。例如下面:
public class ProjMem {

	private Project proj;

	private Member mem;
}

这个类中的两个成员都是“复杂”对象。他们表征了一个项目参与关系。现在我想要实现这样的判断:如果一个成员mem(有id,name等属性)参与了2个或者以上的类型tp的项目proj(有id,type等属性),那么输出错误。可是怎么想也不知道该如何处理?!!!

这个答案在3.06版和3.1M版中的解决方案应该不一样吧?分别应该怎么解决呢?哪位高手可以指导一下?
谢谢了。。。

你可能感兴趣的:(Drools中多嵌套对象的处理)