2013-10-25 68 views
3

我正在使用GAE,我需要編寫一個Objectify查詢,要求在9月1日之後創建的元素。Objectify查詢:按日期過濾

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
  1. 你列需要建立索引

    @Indexed 保護日期dateCreated會;

  2. 可排序只通過在請求中的一個列

  3. 您可以通過失去精度組日期(>和<和=都被認爲是分選,因爲索引進行排序,然後分析!):2012- 11-29 16:03:59.494000這樣變成2012-11-29 ,可以安全使用==。爲每個精度創建一個列(日,周,月)。一般來說,嘗試儘可能少的分揀操作:遲早你會很高興的選擇