如何在 Drools 中打印不匹配的参数

在下面的 Drools 文件中,我在 when 表达式中加入了两个查询,并打印了匹配的结果。


import com.demo.drools.*;


rule "demo"

    when

        $book: BlockTrade()

        $buys : Trade(type=="buy") from $book.trades

        $sells : Trade(type=="sell", $buys.id==id, 

                                     $buys.price==price, 

                                     $buys.trader==trader) from $book.trades

    then

        System.out.println("buys:  " + $buys);

        System.out.println("sells: " + $sells);

    end

它工作正常,但我想以不匹配的原因记录所有不匹配的交易。


例如:


交易 id=1 不匹配,因为 $buys.type="both" 不匹配 $buys 或 $sells 中的任何交易


// 或者


交易 id=2 不匹配,因为 $buys.price=50,并且 $buys.trader="John" 不匹配任何 $sells


如何实施?


九州编程
浏览 121回答 1
1回答

芜湖不芜

如果您想记录不匹配的交易,您将需要为此创建规则。希望能帮助到你,
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java