如何使用drools来适应复杂的条件?

时间:2013-02-21 02:29:26

标签: drools drools-flow

最近我倾向于流口水,我认为这是一个很棒的软件.Drools的核心思想是drl文件。我们应该编写规则文件,例如:

 rule "name"
   when
   then
 end

when部分依赖于实体的属性。例如:现在我有一个可以在我的规则中使用的User类。

 public  class User {
        private int money; 
        private Date time;
            //getter and setter.....   
        }

现在我需要知道用户在2012-09-11和2013-01-01之间的资金,如果他的钱> 100,那么我的逻辑是怎么做的?

2 个答案:

答案 0 :(得分:2)

使用以下规则可以轻松实现:

rule 'Some Rule'
    $u: User( time > '11-sep-2009', time < '01-jan-2013', money > 100)
then
    //do your logic here. $u references the User object
end

希望它有所帮助,

答案 1 :(得分:0)

您可以在DRL文件中编写一个函数,如果用户在2012-09-11和2013-01-01之间的金额大于100,则该函数将返回true。您可以在使用eval并写入部分规则时调用此函数那么你的逻辑部分。写作函数在DRL文件中并不是一个好主意!