use of com.google.appengine.api.datastore.Query in project getting-started-java by GoogleCloudPlatform.
the class DatastoreDao method listBooks.
// [END entitiesToBooks]
// [START listbooks]
@Override
public Result<Book> listBooks(String startCursorString) {
// Only show 10 at a time
FetchOptions fetchOptions = FetchOptions.Builder.withLimit(10);
if (startCursorString != null && !startCursorString.equals("")) {
// Where we left off
fetchOptions.startCursor(Cursor.fromWebSafeString(startCursorString));
}
Query query = // We only care about Books
new Query(BOOK_KIND).addSort(Book.TITLE, // Use default Index "title"
SortDirection.ASCENDING);
PreparedQuery preparedQuery = datastore.prepare(query);
QueryResultIterator<Entity> results = preparedQuery.asQueryResultIterator(fetchOptions);
// Retrieve and convert Entities
List<Book> resultBooks = entitiesToBooks(results);
// Where to start next time
Cursor cursor = results.getCursor();
if (cursor != null && resultBooks.size() == 10) {
// Are we paging? Save Cursor
// Cursors are WebSafe
String cursorString = cursor.toWebSafeString();
return new Result<>(resultBooks, cursorString);
} else {
return new Result<>(resultBooks);
}
}
use of com.google.appengine.api.datastore.Query in project getting-started-java by GoogleCloudPlatform.
the class DatastoreSessionFilter method deleteSessionWithValue.
// [END deleteSessionVariables]
protected void deleteSessionWithValue(String varName, String varValue) {
Transaction transaction = datastore.beginTransaction();
try {
Query query = new Query(SESSION_KIND).setFilter(new FilterPredicate(varName, FilterOperator.EQUAL, varValue));
Iterator<Entity> results = datastore.prepare(transaction, query).asIterator();
while (results.hasNext()) {
Entity stateEntity = results.next();
datastore.delete(transaction, stateEntity.getKey());
}
transaction.commit();
} finally {
if (transaction.isActive()) {
transaction.rollback();
}
}
}
use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.
the class GreetingTest method createSaveObject.
@Test
public void createSaveObject() throws Exception {
Greeting g = new Greeting("default", TEST_CONTENT);
ObjectifyService.ofy().save().entity(g).now();
Query query = new Query("Greeting").setAncestor(new KeyFactory.Builder("Guestbook", "default").getKey());
PreparedQuery pq = ds.prepare(query);
// Should only be one at this point.
Entity greeting = pq.asSingleEntity();
assertEquals(greeting.getProperty("content"), TEST_CONTENT);
}
use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.
the class MetadataPropertiesTest method propertiesOfKind.
// [START property_ancestor_query_example]
List<String> propertiesOfKind(DatastoreService ds, String kind) {
// Start with unrestricted keys-only property query
Query q = new Query(Entities.PROPERTY_METADATA_KIND).setKeysOnly();
// Limit to specified kind
q.setAncestor(Entities.createKindKey(kind));
// Initialize result list
ArrayList<String> results = new ArrayList<String>();
// Build list of query results
for (Entity e : ds.prepare(q).asIterable()) {
results.add(e.getKey().getName());
}
// Return result list
return results;
}
use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.
the class MetadataPropertiesTest method representationsOfProperty.
// [START property_representation_query_example]
Collection<String> representationsOfProperty(DatastoreService ds, String kind, String property) {
// Start with unrestricted non-keys-only property query
Query q = new Query(Entities.PROPERTY_METADATA_KIND);
// Limit to specified kind and property
q.setFilter(new FilterPredicate("__key__", Query.FilterOperator.EQUAL, Entities.createPropertyKey(kind, property)));
// Get query result
Entity propInfo = ds.prepare(q).asSingleEntity();
// Return collection of property representations
return (Collection<String>) propInfo.getProperty("property_representation");
}
Aggregations