java - cqengine 按日期时间比较

标签 java datetime jodatime cqengine

我正在尝试查找特定DateTime 之后的对象列表。为此,我创建了以下查询:

return foos.retrieve(QueryFactory.equal(EXPIRY_INDEX, new DateTime()));

然后我创建了以下索引:

public static final Attribute<Foo, DateTime> EXPIRY_INDEX = new SimpleAttribute<Foo, DateTime>() {
        @Override
        public DateTime getValue(Foo foo, QueryOptions queryOptions) {
            return foo.getEXPIRY();
        }
};

到目前为止,一切都很好,除了 equal(...) 方法将调用 DateTime.equals(...) 据我所知,这最终会始终返回false。我需要的是一种调用 DateTime.isAfterNow(...)DateTime.isAfter(...) 的方法。

如何找到集合中在现在之后具有 DateTime 的所有元素?

最佳答案

如果我理解正确,您应该使用greaterThan() 查询而不是equals() 查询。

这些将依赖于 Comparable.compareTo(),而不是 Object.equals()。因此,如果您的 DateTime 对象正确实现了 Comparable 接口(interface),它应该可以工作。

关于java - cqengine 按日期时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342306/

相关文章:

java - 如何让 Hibernate 拦截器获取某些父类(super class)字段?

java - 包含引用 Map 中其他键的值的 Map 是有向图的最简单形式吗?

c# - 解析 Postman 中的日期对象以转换为 C# DateTime

java - 在时区之间转换,即使日期相同(UTC 到 UTC)

java - 如何在没有动画的情况下关闭应用程序

datetime - 如何集中<f :convertDateTime> timezone in JSF?

c# - 如何在 C# 中检查日期时间是否为零

java - 迄今为止的字符串(格式无效)

java - 我如何检查 joda 时间瞬间是否正在发生?

java - play2 调用子模块中的 Controller 、模型、 View