Objectify queries: filter by date

会有一股神秘感。 提交于 2019-12-30 10:48:14

问题


I am using GAE and I need to write an Objectify query that asks for the elements created after September 1st.

The dateCreated field is Java.util.Date and it is stored in this format 2012-11-29 16:03:59.494000.

This request is NOT working:

   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:


  1. Your column needs to be indexed

    @Indexed protected Date dateCreated;

  2. You can sort only by one column in a request (> and < and != are all considered sorting since the index is sorted, then analyzed)

  3. You can group dates by loosing precision: 2012-11-29 16:03:59.494000 becomes 2012-11-29 this way, you can use == safely. Create a column for each precision you want (day, week, month). In general, try relying the least possible on sorting operations: sooner or later you will be happy for that choice



来源:https://stackoverflow.com/questions/19589461/objectify-queries-filter-by-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!