Here are the examples of the java api class com.google.appengine.api.datastore.FetchOptions taken from open source projects.
1. QueryImpl#fetchOptions()
Project: objectify
File: QueryImpl.java
File: QueryImpl.java
/** * @return a set of fetch options for the current limit, offset, and cursors, * based on the default fetch options. There will always be options even if default. */ private FetchOptions fetchOptions() { FetchOptions opts = FetchOptions.Builder.withDefaults(); if (this.startAt != null) opts = opts.startCursor(this.startAt); if (this.endAt != null) opts = opts.endCursor(this.endAt); if (this.limit != 0) opts = opts.limit(this.limit); if (this.offset != 0) opts = opts.offset(this.offset); if (this.chunk == null) opts = opts.chunkSize(DEFAULT_CHUNK_SIZE); else opts = opts.chunkSize(this.chunk); return opts; }
2. QueryOperations#executeQuery()
Project: solutions-mobile-backend-starter-java
File: QueryOperations.java
File: QueryOperations.java
private EntityListDto executeQuery(QueryDto queryDto, User user) { // check if kindName is not the config kinds SecurityChecker.getInstance().checkIfKindNameAccessible(queryDto.getKindName()); // create Query Query q = SecurityChecker.getInstance().createKindQueryWithNamespace(queryDto.getKindName(), user); q.setKeysOnly(); // set filters FilterDto cf = queryDto.getFilterDto(); if (cf != null) { q.setFilter(cf.getDatastoreFilter()); } // add sort orders if (queryDto.getSortedPropertyName() != null) { q.addSort(queryDto.getSortedPropertyName(), queryDto.isSortAscending() ? SortDirection.ASCENDING : SortDirection.DESCENDING); } // add limit FetchOptions fo; if (queryDto.getLimit() != null && queryDto.getLimit() > 0) { fo = FetchOptions.Builder.withLimit(queryDto.getLimit()); } else { fo = FetchOptions.Builder.withDefaults(); } // execute the query List<Entity> results = datastore.prepare(q).asList(fo); // get entities from the keys List<Key> keyList = new LinkedList<Key>(); for (Entity e : results) { keyList.add(e.getKey()); } Map<String, Entity> resultEntities = CrudOperations.getInstance().getAllEntitiesByKeyList(keyList); // convert the Entities to CbDtos EntityListDto cdl = new EntityListDto(); for (Entity keyOnlyEntity : results) { Entity e = resultEntities.get(keyOnlyEntity.getKey().getName()); cdl.getEntries().add(EntityDto.createFromEntity(e)); } return cdl; }
3. DeviceSubscription#deleteAllContinuously()
Project: solutions-mobile-backend-starter-java
File: DeviceSubscription.java
File: DeviceSubscription.java
/** * Deletes all device subscription entities continuously using task push queue. * * @param time Threshold time before which entities created will be deleted. If time is null, * current time is used and set as Threshold time. * @param cursor Query cursor indicates last query result set position */ protected void deleteAllContinuously(Date time, String cursor) { if (time == null) { time = Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTime(); } Query.FilterPredicate timeFilter = new Query.FilterPredicate(PROPERTY_TIMESTAMP, FilterOperator.LESS_THAN_OR_EQUAL, time); QueryResultIterable<Entity> entities; List<Key> keys = new ArrayList<Key>(); List<String> subIds = new ArrayList<String>(); Query queryAll; queryAll = new Query(DeviceSubscription.SUBSCRIPTION_KIND).setFilter(timeFilter); FetchOptions options = FetchOptions.Builder.withLimit(BATCH_DELETE_SIZE); if (!StringUtility.isNullOrEmpty(cursor)) { options.startCursor(Cursor.fromWebSafeString(cursor)); } entities = this.datastoreService.prepare(queryAll).asQueryResultIterable(options); if (entities != null && entities.iterator() != null) { for (Entity entity : entities) { keys.add(entity.getKey()); String[] ids = new Gson().fromJson((String) entity.getProperty(PROPERTY_SUBSCRIPTION_IDS), String[].class); subIds.addAll(Arrays.asList(ids)); } } if (keys.size() > 0) { deleteInBatch(keys); enqueueDeleteDeviceSubscription(time, entities.iterator().getCursor().toWebSafeString()); } if (subIds.size() > 0) { deletePsiSubscriptions(subIds); } }
4. QueryOperations#executeQuery()
Project: io2014-codelabs
File: QueryOperations.java
File: QueryOperations.java
private EntityListDto executeQuery(QueryDto queryDto, User user) { // check if kindName is not the config kinds SecurityChecker.getInstance().checkIfKindNameAccessible(queryDto.getKindName()); // create Query Query q = SecurityChecker.getInstance().createKindQueryWithNamespace(queryDto.getKindName(), user); q.setKeysOnly(); // set filters FilterDto cf = queryDto.getFilterDto(); if (cf != null) { q.setFilter(cf.getDatastoreFilter()); } // add sort orders if (queryDto.getSortedPropertyName() != null) { q.addSort(queryDto.getSortedPropertyName(), queryDto.isSortAscending() ? SortDirection.ASCENDING : SortDirection.DESCENDING); } // add limit FetchOptions fo; if (queryDto.getLimit() != null && queryDto.getLimit() > 0) { fo = FetchOptions.Builder.withLimit(queryDto.getLimit()); } else { fo = FetchOptions.Builder.withDefaults(); } // execute the query List<Entity> results = datastore.prepare(q).asList(fo); // get entities from the keys List<Key> keyList = new LinkedList<Key>(); for (Entity e : results) { keyList.add(e.getKey()); } Map<String, Entity> resultEntities = CrudOperations.getInstance().getAllEntitiesByKeyList(keyList); // convert the Entities to CbDtos EntityListDto cdl = new EntityListDto(); for (Entity keyOnlyEntity : results) { Entity e = resultEntities.get(keyOnlyEntity.getKey().getName()); cdl.getEntries().add(EntityDto.createFromEntity(e)); } return cdl; }
5. DeviceSubscription#deleteAllContinuously()
Project: io2014-codelabs
File: DeviceSubscription.java
File: DeviceSubscription.java
/** * Deletes all device subscription entities continuously using task push queue. * * @param time Threshold time before which entities created will be deleted. If time is null, * current time is used and set as Threshold time. * @param cursor Query cursor indicates last query result set position */ protected void deleteAllContinuously(Date time, String cursor) { if (time == null) { time = Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTime(); } Query.FilterPredicate timeFilter = new Query.FilterPredicate(PROPERTY_TIMESTAMP, FilterOperator.LESS_THAN_OR_EQUAL, time); QueryResultIterable<Entity> entities; List<Key> keys = new ArrayList<Key>(); List<String> subIds = new ArrayList<String>(); Query queryAll; queryAll = new Query(DeviceSubscription.SUBSCRIPTION_KIND).setFilter(timeFilter); FetchOptions options = FetchOptions.Builder.withLimit(BATCH_DELETE_SIZE); if (!StringUtility.isNullOrEmpty(cursor)) { options.startCursor(Cursor.fromWebSafeString(cursor)); } entities = this.datastoreService.prepare(queryAll).asQueryResultIterable(options); if (entities != null && entities.iterator() != null) { for (Entity entity : entities) { keys.add(entity.getKey()); String[] ids = new Gson().fromJson((String) entity.getProperty(PROPERTY_SUBSCRIPTION_IDS), String[].class); subIds.addAll(Arrays.asList(ids)); } } if (keys.size() > 0) { deleteInBatch(keys); enqueueDeleteDeviceSubscription(time, entities.iterator().getCursor().toWebSafeString()); } if (subIds.size() > 0) { deletePsiSubscriptions(subIds); } }