Robert,

In our code, we use some thin wrapper classes to create and execute
queries, which obfuscates the execution of the datastore API calls a
bit. I have created a code fragment that illustrates how you execute
an IN query using the Java LL API:

    DatastoreServiceConfig config =
DatastoreServiceConfig.Builder.withDefaults();
    DatastoreService datastoreService =
DatastoreServiceFactory.getDatastoreService(config);
    List<Entity> entityList = new ArrayList<Entity>();

    // some code here to fill the entityList with something useful

    List<Key> keyList = new ArrayList<Key>();
    for (Entity entity : entityList) {
      keyList.add(entity.getKey());
    }
    Query query = new Query("MyEntityKind");
    query.addFilter("MyPropertyName", Query.FilterOperator.IN,
keyList);
    Iterable<Entity> result =
datastoreService.prepare(query).asIterable();

As in my test the keyList had 36 entries, I must assume that there's
no such limit in the Java LL API. My test was using our GUI, but I'm
inclined to create a new test case that creates test data
programmatically.

Unfortunately we haven't enabled Appstats currently as we're only
going to analyze performance once we have the most important features
running. But I acknowledge that it's creating nice (and useful)
diagrams :-D. It illustrates well what you're saying. Interestingly,
the queries are executed sequentially, although one could imagine them
to be executed in parallel. I may enable Appstats soon to see how this
looks in Java. I'll keep the list posted as soon as we get any new
results.

Cheers, Remigius.

-- 
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-appeng...@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