1。or with binding
比如 这条规则:“半年额度使用率 <0.3 或者 半年消费次数 <3 的信用卡 ”就得用上 所谓的 or with binding 。写法如下:
c:(Card(limitUsePercentHy<0.3) || Card( timesHy < 3))
按常理应该如下写 就可以了 :
c:Card(limitUsePercentHy<0.3 || timesHy < 3)
2。对象里面不能再嵌复杂对象
比如 信用卡关联了一个客户对象,
规则是:客户id为1的信用卡,按常理应该写成: c:Card(customer.getId() == 1)
但是这是行不通的,Card 里面将不能再出现Customer 这种对象,只能是boolean,int,float,double,或者他们的包装类,还有String等 这些简单对象。
drools 3.1将支持BigDecimal,但是等了好几周都没发布,svn上取下来的代码也不能用,当然3.0.5的自带的一堆测试也是通不过的-_-
3。待续..
比如 这条规则:“半年额度使用率 <0.3 或者 半年消费次数 <3 的信用卡 ”就得用上 所谓的 or with binding 。写法如下:
c:(Card(limitUsePercentHy<0.3) || Card( timesHy < 3))
按常理应该如下写 就可以了 :
c:Card(limitUsePercentHy<0.3 || timesHy < 3)
2。对象里面不能再嵌复杂对象
比如 信用卡关联了一个客户对象,
规则是:客户id为1的信用卡,按常理应该写成: c:Card(customer.getId() == 1)
但是这是行不通的,Card 里面将不能再出现Customer 这种对象,只能是boolean,int,float,double,或者他们的包装类,还有String等 这些简单对象。
drools 3.1将支持BigDecimal,但是等了好几周都没发布,svn上取下来的代码也不能用,当然3.0.5的自带的一堆测试也是通不过的-_-
3。待续..