Hi Per,
The index you need is first by user, then by listPosition - the datastore
cannot use the one you specified.

-Nick Johnson

2009/9/25 Per Sandström <pg.sandst...@gmail.com>

>
> Im trying to perform this query:
>
> Query query = pm.newQuery(ListStore.class);
> query.setFilter("user == userParam");
> query.setOrdering("listPosition ASC");
> query.declareParameters("long userParam");
> List<ListStore> listStoreLists = (List<ListStore>) query.execute
> (user);
>
> My index looks like this:
>
> ListStore
> listPosition ▲ , user ▲
> Serving
>
> Still, I get a "DatastoreNeedIndexException". Any suggestions? Full
> stacktrace following:
>
> /checklists
> com.google.appengine.api.datastore.DatastoreNeedIndexException: no
> matching index found.
>        at
> com.google.appengine.api.datastore.DatastoreApiHelper.translateError
> (DatastoreApiHelper.java:35)
>        at
> com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall
> (DatastoreApiHelper.java:56)
>        at com.google.appengine.api.datastore.DatastoreServiceImpl
> $PreparedQueryImpl.runQuery(DatastoreServiceImpl.java:342)
>        at com.google.appengine.api.datastore.DatastoreServiceImpl
> $PreparedQueryImpl.access$100(DatastoreServiceImpl.java:269)
>        at com.google.appengine.api.datastore.DatastoreServiceImpl
> $PreparedQueryImpl$1.iterator(DatastoreServiceImpl.java:303)
>        at
>
> org.datanucleus.store.appengine.query.RuntimeExceptionWrappingIterable.iterator
> (RuntimeExceptionWrappingIterable.java:42)
>        at org.datanucleus.store.appengine.query.StreamingQueryResult.<init>
> (StreamingQueryResult.java:77)
>        at
>
> org.datanucleus.store.appengine.query.DatastoreQuery.newStreamingQueryResultForEntities
> (DatastoreQuery.java:324)
>        at
> org.datanucleus.store.appengine.query.DatastoreQuery.fulfillEntityQuery
> (DatastoreQuery.java:310)
>        at
> org.datanucleus.store.appengine.query.DatastoreQuery.performExecute
> (DatastoreQuery.java:242)
>        at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute
> (JDOQLQuery.java:84)
>        at org.datanucleus.store.query.Query.executeQuery(Query.java:1489)
>        at org.datanucleus.store.query.Query.executeWithArray(Query.java:
> 1371)
>        at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:243)
>        at guestbook.CheckLists.doPost(CheckLists.java:88)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>        at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1093)
>        at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
> (SaveSessionFilter.java:35)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>        at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
> (TransactionCleanupFilter.java:43)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>        at org.mortbay.jetty.servlet.ServletHandler.handle
> (ServletHandler.java:360)
>        at org.mortbay.jetty.security.SecurityHandler.handle
> (SecurityHandler.java:216)
>        at org.mortbay.jetty.servlet.SessionHandler.handle
> (SessionHandler.java:181)
>        at org.mortbay.jetty.handler.ContextHandler.handle
> (ContextHandler.java:712)
>        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
>        at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> (AppVersionHandlerMap.java:237)
>        at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
>        at org.mortbay.jetty.Server.handle(Server.java:313)
>        at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 506)
>        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:830)
>        at
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
> (RpcRequestParser.java:76)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>        at
>
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest
> (JettyServletEngineAdapter.java:139)
>        at com.google.apphosting.runtime.JavaRuntime.handleRequest
> (JavaRuntime.java:235)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:4950)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:4948)
>        at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> (BlockingApplicationHandler.java:24)
>        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 359)
>        at com.google.net.rpc.impl.Server$2.run(Server.java:823)
>        at com.google.tracing.LocalTraceSpanRunnable.run
> (LocalTraceSpanRunnable.java:56)
>        at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
> (LocalTraceSpanBuilder.java:516)
>        at com.google.net.rpc.impl.Server.startRpc(Server.java:778)
>        at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
>        at com.google.net.rpc.impl.ServerConnection.messageReceived
> (ServerConnection.java:437)
>        at com.google.net.rpc.impl.RpcConnection.parseMessages
> (RpcConnection.java:319)
>        at com.google.net.rpc.impl.RpcConnection.dataReceived
> (RpcConnection.java:290)
>        at com.google.net.async.Connection.handleReadEvent(Connection.java:
> 428)
>        at com.google.net.async.EventDispatcher.processNetworkEvents
> (EventDispatcher.java:762)
>        at com.google.net.async.EventDispatcher.internalLoop
> (EventDispatcher.java:207)
>        at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> 101)
>        at com.google.net.rpc.RpcService.runUntilServerShutdown
> (RpcService.java:251)
>        at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
> (JavaRuntime.java:392)
>        at java.lang.Thread.run(Unknown Source)
>
> >
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine
Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
368047

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to