流口水约会强迫和条件或 [英] Drools date coercion and conditional OR

查看:106
本文介绍了流口水约会强迫和条件或的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我尝试在日期类型上使用条件的简单Drools规则并使用条件OR( || ),则会出现以下错误。如果我将 || 更改为& ,则效果很好。这是错误,已知限制还是我的规则有问题?
我正在使用Drools 5.5.0 Final

If I try a simple Drools rule with conditions on date type and uses conditional OR (||) I get the following error. If I change || to && it works fine. Is this a bug, known limitation or something wrong with my rule? I am using Drools 5.5.0 Final

规则文件

package net.madhura.drools.rules

import net.madhura.drools.DateContainer;

dialect "mvel"

rule "Test rule"
when
    $container: DateContainer(
        date >= "15-Oct-2013" || date <= "01-Oct-2013"
    )
then
    System.out.println("working");
end

DateContainer类

DateContainer class

package net.madhura.drools;

import java.util.Date;

public class DateContainer {

    private Date date;

    public DateContainer(Date date) {
        this.date = date;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

错误

Unable to Analyse Expression date >= "15-Oct-2013" || date <= "01-Oct-2013":
[Error: Comparison operation requires compatible types. Found class java.util.Date and class java.lang.String]
[Near : {... date >= "15-Oct-2013" || date <= "01-Oct-2013" ....}]
                                              ^
[Line: 9, Column: 1] : [Rule name='Test rule']


推荐答案

显然,这是一个Drools错误,现已修复。错误报告位于此处

Apparently this is a Drools bug which is now fixed. Bug report is here

这篇关于流口水约会强迫和条件或的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆