我有一个使用Java 8 Local Date进行模式匹配的规则。不幸的是,这种比较不适用于Java 8 Local日期,但适用于旧的java.util.Date API。
这是我的规则:
rule "NJ Trauma Rule"
when
$bill : MedicalBillData ( treatmentState == "NJ" , lossDate >= "01-JAN-2017" ) // Not OK
//Correct syntax
$bill : MedicalBillData ( treatmentState == "NJ" ,
lossDate.isAfter(LocalDate.of(2017, 7, 1)) )
then
//Some actions
end
// POJO
public class MedicalBillData
{
private LocalDate lossDate;
private String treatmentState;
}
错误:
无法分析表达式lossDate> = new java.util.Date(1483250400000): [错误:比较操作需要兼容类型。找到类java.time.LocalDate和类java.util.Date] [近:{... lossDate> = new java.util.Date(1483250400000)....}] ^:[规则名称='NJ创伤规则使用Java 8 Date']
Drools版本:7.5.0.Final
Java:8
非常感谢任何解决问题的方法!