首页 > 解决方案 > Drools-比较2个对象的属性

问题描述

我需要确定选择将员工分配到哪一列火车。

假设我有 2 列具有以下属性的火车:

Train 1                      Train 2
trainID=1                    trainID=2
passengerCount=100           passengerCount=150
numberOfBoxes=12             numberOfBoxes=7

如果我将这两个对象都传递给 Drools 并检查

$train1 : TrainProperties($pasCnt : passengerCount) 
    $train2 : TrainProperties($pasCnt2 : passengerCount > $pasCnt)  
then    
    Sysout("Train 2 is more important")
end

现在我必须根据 numberOfBoxes 添加更多条件。我该怎么做?

标签: drools

解决方案


Drools 文档中所述,您可以使用 a在模式内,创建多个AND条件。您也可以使用||来创建OR.

因此,在您的情况下,您可以执行以下操作:

when
    $train1 : TrainProperties($pasCnt : passengerCount, $boxes: numberOfBoxes) 
    $train2 : TrainProperties($pasCnt2 : passengerCount > $pasCnt, numberOfBoxes > $boxes )  
then    
    Sysout("Train 2 is more important")
end

希望能帮助到你,


推荐阅读