为Hazelcast在日期字段上创建谓词

为Hazelcast在日期字段上创建谓词,hazelcast,predicatebuilder,Hazelcast,Predicatebuilder,有人知道如何为Hazelcast创建日期类型谓词吗? 我使用谓词.equal(“日期”,“值”)它不能正常工作。我在Hazelcast中传递一个现有的日期值。它什么也不返回java.util.date应该是可比较的。 我不知道为什么它不能比较好。任何人都可以帮忙,非常感谢 您也可以尝试自己的谓词。i、 e.如果您有一个键为Object、值为Date的地图,则可以执行以下操作: final Date requiredDate = /*your date object*/; map.values(

有人知道如何为Hazelcast创建日期类型谓词吗? 我使用
谓词.equal(“日期”,“值”)它不能正常工作。我在Hazelcast中传递一个现有的日期值。它什么也不返回
java.util.date
应该是可比较的。
我不知道为什么它不能比较好。任何人都可以帮忙,非常感谢

您也可以尝试自己的谓词。i、 e.如果您有一个键为Object、值为Date的地图,则可以执行以下操作:

final Date requiredDate = /*your date object*/;

map.values(new Predicate<Object, Date>() {

public boolean apply(Entry<Object, Date> arg0) {

        Date date = arg0.getValue();

        if(requiredDate.equals(date))
            return true;
        else
            return false;
    }
});
final Date requiredDate=/*您的日期对象*/;
value(新谓词(){
公共布尔应用(条目arg0){
日期=arg0.getValue();
如果(要求日期等于(日期))
返回true;
其他的
返回false;
}
});

您也可以在apply方法中进行其他形式的比较。

可能是不同的时区或毫秒或其他什么?它应该可以工作,与使用SQLPredicate相同。您是否将它与第一个参数一起用作具有属性名称的字符串?你确定你在比较完全相同的日期吗?util date保存毫秒。我将它与第二个参数一起使用,作为camel中的字符串。我很确定是在同一天。但Hazelcast似乎不可能比较日期。非常感谢您的回复。我的映射结构是对象是值,随机字符串是键。对象具有日期属性。我在Camel中的blueprint DSL中查找日期属性。问题是我将日期格式字符串传递给hazelcast,但没有得到匹配的结果。我不确定是否正确理解了您的设置。对象有一个Date(java.util.Date)属性,在谓词中,传递一个字符串(java.lang.String)作为可比较的?如果确实是这样做的话。那么你不认为这种方法是错误的吗。实际上,您正在尝试将日期与字符串进行比较。我知道两者都是可比的,但这并不意味着两者都能够相互比较。我建议您在谓词中传递一个日期对象,而不是格式化字符串。我知道您的意思。我试图传入格式化的日期对象。但它还不起作用。所以Hazelcast似乎没有比较Date对象。这就是问题所在。试着在答案中给出我的解决方案。这样,您就可以使用日志语句和断点来调试代码。