对象化查询:按日期筛选



我正在使用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;
    }
  1. 您的列需要编入索引

    @Indexed受保护日期创建日期;

  2. 您只能在请求中按一列进行排序(>和<以及>

  3. 您可以通过丢失精度对日期进行分组:2012-11-29
  4. 16:03:59.494000 变为 2012-11-29这样,您可以安全地使用 ==。为所需的每个精度(天、周、月)创建一个列。一般来说,尝试尽可能少地依赖排序操作:迟早你会为这个选择感到高兴

最新更新