2013-06-24 233 views
0

我希望在它提出了具體Merchant,並根據排序的日期時間(dateLog),以獲得從GAE約會列表:排序谷歌應用程序引擎

PersistenceManager pm = PMF.get().getPersistenceManager(); 
String query = "select from " + Appointment.class.getName(); 
query += " where merchant == '" + session.getAttribute("merchant") + "'"; 
query += " order by dateLog desc range 0,5"; 
List<Appointment> appointment = (List<Appointment>) pm.newQuery(query).execute(); 

但是,它會返回錯誤,並我多次檢查/雙重檢查都無濟於事。任何人都可以幫忙我很難過。

+0

這就是它在錯誤日誌中說的:'這個查詢的建議索引是: ' – Melvin

回答

0

您應該在WEB-INF/datastore-indexes.xml的應用程序的war/目錄中指定數據存儲的建議索引。該XML看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<datastore-indexes autoGenerate="true"> 
    <datastore-index kind="Appointment" ancestor="false" source="manual"> 
    <property name="merchant" direction="asc"/> 
    <property name="dateLog" direction="desc"/> 
    </datastore-index> 
</datastore-indexes> 

參考:https://developers.google.com/appengine/docs/java/config/indexconfig

+0

嗨Nijin,謝謝你回來。 datestore-indexes.xml不存在於我的WEB-INF文件夾中,並且使用上面的代碼創建它仍然不起作用..任何想法? – Melvin

+0

您是否重新部署了您的應用程序?在您的應用程序中使用新文件重新部署後,您現在是否可以在App Engine管理控制檯的「索引」部分看到索引? –

0

如果您在上傳到App Engine服務器之前測試的URL,然後索引文件將被自動生成。運行在開發服務器上,並點擊顯示錯誤的URL,它將生成文件,並且當您部署到App引擎服務器時,索引將被構建,還有一件事情,需要時間才能看到在數據存儲索引中和服務)在Google App Engine管理控制檯中。