Objectify查询:按日期过滤

Art*_*uro 3 java gwt google-app-engine date objectify

我正在使用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;
    }
Run Code Online (Sandbox Code Playgroud)

Zie*_*mdi 9

  1. 您的列需要编入索引

    @Indexed protected Date dateCreated;

  2. 您只能在请求中按一列排序(>和<和!=都被视为排序,因为索引已排序,然后进行分析)

  3. 你可以通过失去精度来分组日期:2012-11-29 16:03:59.494000这样变成2012-11-29,你可以安全地使用==.为您想要的每个精度(日,周,月)创建一列.一般来说,尽量少依赖排序操作:迟早你会对这个选择感到满意