.setKind(KIND2) .setFilter(PropertyFilter.hasAncestor(ROOT_KEY)) .setOrderBy(OrderBy.asc("__key__")) .build();
@Test public void testRunStructuredQuery() throws InterruptedException { Query<Entity> query = Query.newEntityQueryBuilder().setKind(KIND1).setOrderBy(OrderBy.asc("__key__")).build(); .setKind(KIND1) .setFilter(PropertyFilter.hasAncestor(ROOT_KEY)) .setOrderBy(OrderBy.asc("__key__")) .build(); .setFilter(PropertyFilter.gt("age", 18)) .setDistinctOn("age") .setOrderBy(OrderBy.asc("age")) .setLimit(10) .build(); .setFilter(PropertyFilter.gt("age", 18)) .setDistinctOn("age") .setOrderBy(OrderBy.asc("age")) .setLimit(10) .build();
/** Modifies the instance */ void addOrder(String condition) { condition = condition.trim(); boolean descending = false; if (condition.startsWith("-")) { descending = true; condition = condition.substring(1).trim(); } // Prevent ordering by @Id or @Parent fields, which are really part of the key if (this.classRestriction != null) { final KeyMetadata<?> meta = loader.ofy.factory().keys().getMetadataSafe(this.classRestriction); if (condition.equals(meta.getParentFieldName())) throw new IllegalArgumentException("You cannot order by @Parent field. Perhaps you wish to order by __key__ instead?"); if (condition.equals(meta.getIdFieldName())) { throw new IllegalArgumentException("You cannot order by @Id field. Perhaps you wish to order by __key__ instead?"); } } this.actual = actual.orderBy(descending ? OrderBy.desc(condition) : OrderBy.asc(condition)); }
/** * Returns a list of all task entities in ascending order of creation time. * * @throws DatastoreException if the query fails */ Iterator<Entity> listTasks() { Query<Entity> query = Query.newEntityQueryBuilder().setKind("Task").setOrderBy(OrderBy.asc("created")).build(); return datastore.run(query); } // [END datastore_retrieve_entities]
@Test public void testRunStructuredQuery() { Query<Entity> query = Query.newEntityQueryBuilder().setKind(KIND1).setOrderBy(OrderBy.asc("__key__")).build(); QueryResults<Entity> results1 = datastore.run(query); assertTrue(results1.hasNext()); .setFilter(PropertyFilter.gt("age", 18)) .setDistinctOn("age") .setOrderBy(OrderBy.asc("age")) .setLimit(10) .build();