.setKind(KIND1) .setFilter(PropertyFilter.hasAncestor(ROOT_KEY)) .build();
Query.newProjectionEntityQueryBuilder().setKind(KIND1).setProjection("__key__").build(); StructuredQuery<ProjectionEntity> scKeyOnlyProjectionQuery = Query.newProjectionEntityQueryBuilder() .setFilter(PropertyFilter.hasAncestor(ROOT_KEY)) .setProjection("__key__") .build(); Iterator<ProjectionEntity> results3 = getStronglyConsistentResults(scKeyOnlyProjectionQuery, keyOnlyProjectionQuery); .setOrderBy(OrderBy.asc("age")) .setLimit(10) .build(); .setOrderBy(OrderBy.asc("age")) .setLimit(10) .build();
public ProjectionEntityQuery newProjectionQuery() { Preconditions.checkState(!projection.isEmpty(), "You must have projections to create a projection query"); final Builder builder = build(Query::newProjectionEntityQueryBuilder); Queries.addProjection(builder, projection); Queries.addDistinctOn(builder, distinctOnAll ? projection : distinctOn); return builder.build(); }
PropertyFilter.eq(_model.getVhost(), _context.getVhost()))) .build();
.setFilter(CompositeFilter.and(PropertyFilter.gt(_model.getExpiry(), 0), PropertyFilter.le(_model.getExpiry(), now))) .setLimit(_maxResults) .build();
/** * Check to see if indexes are available, in which case * we can do more performant queries. * @return <code>true</code> if indexes are available */ protected boolean checkIndexes() { try { Query<ProjectionEntity> query = Query.newProjectionEntityQueryBuilder() .setKind(_model.getKind()) .setProjection(_model.getExpiry()) .setFilter(PropertyFilter.eq(_model.getId(), "-")) .build(); _datastore.run(query); return true; } catch (DatastoreException e) { //need to assume that the problem is the index doesn't exist, because there //is no specific code for that if (LOG.isDebugEnabled()) LOG.debug("Check for indexes", e); return false; } }
/** Example of creating and running a projection entity query. */ // [TARGET newProjectionEntityQueryBuilder()] // [VARIABLE "my_kind"] // [VARIABLE "my_property"] public QueryResults<ProjectionEntity> newProjectionEntityQuery(String kind, String property) { // [START newProjectionEntityQuery] Query<ProjectionEntity> query = Query.newProjectionEntityQueryBuilder().setKind(kind).addProjection(property).build(); QueryResults<ProjectionEntity> results = datastore.run(query); // Use results // [END newProjectionEntityQuery] return results; } }
@Test public void mergeFrom() { compareMergedQuery( ENTITY_QUERY, new EntityQuery.Builder().mergeFrom(ENTITY_QUERY.toPb()).build()); compareMergedQuery(KEY_QUERY, new KeyQuery.Builder().mergeFrom(KEY_QUERY.toPb()).build()); compareMergedQuery( PROJECTION_QUERY, new ProjectionEntityQuery.Builder().mergeFrom(PROJECTION_QUERY.toPb()).build()); }