在我的应用程序中,我想从数据存储区中获取一组实体,其中Date字段设置为当前时刻之前的日期。
我确实意识到,这样做的一种方法是简单地将日期存储在这些实体中,只需long
值,以毫秒为单位。
但实际上有一种方法可以将它们存储为Date
并能够将它们用于过滤吗?
query.setFilter("dateField.before(dateParam)");
,但它没有用,也没有简单的比较。
提前致谢。
答案 0 :(得分:5)
只需将dateField
声明为java.util.Date
,然后使用
query.setFilter("dateField < dateParam");
query.declareParameters("java.util.Date dateParam");
List<...> results = (List<...>) query.execute(new java.util.Date());
请参阅此处的示例:http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html
答案 1 :(得分:1)
康斯坦丁的解决方案给出了:
运营商&lt;不能用作连接条件的一部分。
在参数名称前添加冒号使它对我有用:
q.setFilter("createdTime < :nowTime");
List<...> result = (List<...>) q.execute(new java.util.Date());