【问题标题】:Objectify queries: filter by date对象化查询:按日期过滤
【发布时间】:2013-11-04 13:10:59
【问题描述】:

我正在使用 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;
    }

【问题讨论】:

  • 您存储为日期或字符串。没有将日期存储为格式。

标签: java google-app-engine date gwt objectify


【解决方案1】:
  1. 您的列需要编入索引

    @索引 受保护的日期 dateCreated;

  2. 您只能按请求中的一列排序(> 和

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

【讨论】:

    猜你喜欢
    • 2022-07-07
    • 2013-08-16
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2018-06-13
    • 2011-06-07
    • 2019-11-02
    相关资源
    最近更新 更多