1
如果我嘗試一個簡單的日期類型Drools規則,並使用條件OR(||
),我得到以下錯誤。如果我將||
更改爲&&
,它工作正常。這是一個錯誤,已知限制或我的規則有什麼問題嗎? 我使用Drools的5.5.0最終Drools日期強制和條件或
規則文件
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類
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']
錯誤說你不能比較日期和字符串,沒有關於OR運算符。你在比較兩個Date實例時是否嘗試過OR? – kaskelotti
@Jndy根據日期的Drools文檔(http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e5702),可以比較日期這個。此外,如果我更改||,它會正常工作至 &&。 –
是的,你是對的。根據文檔,它應該工作。 – kaskelotti