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.