public List<Game> getGames(Date gameDateMin, Date gameDateMax, boolean includePrivateGames) { // Create a query for the Entity Kind you are searching for Query query = new Query(Game.class.getName()); // Create filters List<Filter> filters = new ArrayList<Query.Filter>(); if (gameDateMin != null) { Filter gameDateMinFilter = new Query.FilterPredicate("gameDate", FilterOperator.GREATER_THAN_OR_EQUAL, gameDateMin); filters.add(gameDateMinFilter); } if (gameDateMax != null) { Filter gameDateMaxFilter = new Query.FilterPredicate("gameDate", FilterOperator.LESS_THAN_OR_EQUAL, gameDateMax); filters.add(gameDateMaxFilter); } if (!includePrivateGames) { Filter privateGameFilter = new Query.FilterPredicate("privateGame", FilterOperator.EQUAL, false); filters.add(privateGameFilter); } if (!filters.isEmpty()) { query.setFilter(CompositeFilterOperator.and(filters)); } // ordering query.addSort("gameDate", SortDirection.ASCENDING); query.addSort("status", SortDirection.ASCENDING); PreparedQuery preparedQuery = dataStoreService.prepare(query); return this.toObjects(preparedQuery.asIterable()); }
// Construct then prepare your query List<Entity> get5TallestPeople() { DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Query q = new Query("Person"); q.addSort("height", SortDirection.DESCENDING); PreparedQuery pq = ds.prepare(q); return pq.asList(FetchOptions.Builder.withLimit(5)); }
Query q = new Query("Employees"); q.addFilter("is_active", FilterOperator.EQUAL, isActive); q.addSort("first_name", SortDirection.ASCENDING); PreparedQuery pq = datastore.prepare(q); List<Employees> result = pq.asList(FetchOptions.Builder.withOffset(5).limit(5));
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String entityParam = req.getParameter("e"); resp.setContentType("text/plain"); final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); // Original query final Query queryOrig = new Query(entityParam); queryOrig.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING); for (final Entity entityOrig : datastore.prepare(queryOrig).asIterable()) { // Query for this entity and all its descendant entities and collections final Query query = new Query(); query.setAncestor(entityOrig.getKey()); query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING); for (final Entity entity : datastore.prepare(query).asIterable()) { resp.getWriter().println(entity.getKey().toString()); // Print properties final Map<String, Object> properties = entity.getProperties(); final String[] propertyNames = properties.keySet().toArray(new String[properties.size()]); for(final String propertyName : propertyNames) { resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName)); } } } }