I have a very simple java web app, tested on local 127.0.0.1, without any problem, but got error on Google.
The model is plain pojo, and the function is straight forward List<MyModel> results = new ArrayList(); PersistenceManager pm = PersistenceManagerSingeton.instance ().getPersistenceManager(); int startId = pageNumber*pageSize; int endId = startId+pageSize+1; Query query = pm.newQuery(MyModel.class); query.setOrdering("id desc"); query.setRange(startId, endId); try { results = (List< MyModel >) query.execute(); } finally { query.closeAll(); pm.close(); } The "id" is the PK @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; This works fine on my local testing (Eclipse+App-Engine-Plug-in) Today, I got account approval email from Google, and uploaded this app to app-engine. However when I was testing it, always got below error: com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. at com.google.appengine.api.datastore.DatastoreApiHelper.translateError (DatastoreApiHelper.java:34) at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall (DatastoreApiHelper.java:55) at com.google.appengine.api.datastore.DatastoreServiceImpl $PreparedQueryImpl.runQuery(DatastoreServiceImpl.java:310) at com.google.appengine.api.datastore.DatastoreServiceImpl $PreparedQueryImpl.access$100(DatastoreServiceImpl.java:240) at com.google.appengine.api.datastore.DatastoreServiceImpl $PreparedQueryImpl$1.iterator(DatastoreServiceImpl.java:269) at org.datanucleus.store.appengine.query.RuntimeExceptionWrappingIterable.iterator (RuntimeExceptionWrappingIterable.java:42) at org.datanucleus.store.appengine.query.StreamingQueryResult.<init> (StreamingQueryResult.java:72) at org.datanucleus.store.appengine.query.DatastoreQuery.fulfillEntityQuery (DatastoreQuery.java:253) at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute (DatastoreQuery.java:220) at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute (JDOQLQuery.java:85) at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute (JDOQLQuery.java:31) at org.datanucleus.store.query.Query.executeQuery(Query.java:1466) at org.datanucleus.store.query.Query.executeWithArray(Query.java: 1340) at org.datanucleus.store.query.Query.execute(Query.java:1313) at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:218) My understanding is that query as simple as above, should not need manual index. I noticed there was nothing the generated datastore-indexes-auto.xml, just <datastore-indexes/>. It makes sense since all my operations are save, delete and select-all-type of query I even tried creating manually the datastore-index.xml with below: <?xml version="1.0" encoding="utf-8"?> <datastore-indexes xmlns="http://appengine.google.com/ns/datastore-indexes/1.0" autoGenerate="true"> <datastore-index kind="WordeePuzzle" ancestor="false"> <property name="id" direction="desc" /> </datastore-index> </datastore-indexes> Tested on Google, and got same error. Please help Thanks. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---