2011-04-04 80 views
0
 Date today = new Date();   
     Query query5 = pm.newQuery(TMS.class); 
     query5.setFilter("start_date < date"); 
     query5.setFilter("end_date > date"); 
     query5.setFilter("emp_Id == id"); 
     query5.declareParameters("java.util.Date date,String id"); 
     List<TMS> result1 = (List<TMS>)query5.execute(today,session.getAttribute("emp_Id").toString()); 

查詢會給出所有結果並且條件不起作用。它也不會產生任何錯誤。任何機構可以提供解決方案嗎?日期查詢不適用於Google App Engine Java

回答

1

我不確定,但也許會發生這種情況,因爲對查詢有一些限制。

在GAE上,您不能在多個屬性上使用不等式過濾器。您在「start_date」屬性上使用運算符LESS_THAN,在「end_date」屬性上使用運算符GREATER_THAN。也許這就是問題所在。

檢查了這一點:http://code.google.com/appengine/docs/java/datastore/queries.html#Restrictions_on_Queries

+0

但是,只能在我們創建實體的低級別數據存儲上使用該功能。這不適用於JDO .. – 2011-04-05 11:58:01

+0

但JDO使用低級別數據存儲。這個限制也適用於JDO。 – 2011-04-05 12:19:08

0

您所查詢的多個屬性。您需要通過在datastore.indexes文件中定義索引來創建索引。單一屬性查詢僅在默認情況下啓用。

相關問題