我正在使用GAE,我需要编写一个Objectify查询,询问9月1日之后创建的元素。
dateCreated字段是Java.util.Date,它以2012-11-29 16:03:59.494000格式存储。
此请求无效:
public List<MyElement> listAllFromUser(String userId)
{
Objectify ofy = ObjectifyService.begin();
Query<MyElement> q=ofy.query(MyElement.class).filter("dateCreated >", "2013-09-01 00:00:00");
List<MyElement> results = q.list();
return results;
}
答案 0 :(得分:9)
您的专栏需要编入索引
@Indexed protected Date dateCreated;
您只能按请求中的一列进行排序(&gt;和&lt;和!=都被视为排序,因为索引已排序,然后进行分析)
您可以通过失去精度来分组日期:2012-11-29 16:03:59.494000成为2012-11-29 这样,你可以安全地使用==。为您想要的每个精度(日,周,月)创建一列。一般来说,尽量少依赖分类操作:迟早你会对这个选择感到满意