排序Google App Engine

时间:2013-06-24 09:33:16

标签: java google-app-engine persistence gql

我希望在特定Merchant下获取GAE的约会列表,并根据其制作日期(dateLog)进行排序:

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(); 

然而,它返回错误,我已经多次检查/双重检查无效。有人可以帮忙吗?我很难过。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果在上传到App引擎服务器之前测试URL,则会自动生成索引文件。在开发服务器中运行并点击显示错误的URL,它将生成文件,当您部署到App引擎服务器时,将构建索引,还有一件事,您需要花时间在数据存储区索引中看到它(构建和Google服务管理控制台中的服务。